Commit 2c4d8298cfe3d349149ab76729bf77d1c453542a

Authored by YunaiV
1 parent e604cba3

【代码评审】商城:纯积分兑换时,直接设置为待发货

yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderUpdateServiceImpl.java
... ... @@ -245,7 +245,10 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
245 245 }
246 246  
247 247 // 3. 生成预支付
248   - createPayOrder(order, orderItems);
  248 + // 特殊情况:积分兑换时,可能支付金额为零
  249 + if (order.getPayPrice() > 0) {
  250 + createPayOrder(order, orderItems);
  251 + }
249 252  
250 253 // 4. 插入订单日志
251 254 TradeOrderLogUtils.setOrderInfo(order.getId(), null, order.getStatus());
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/handler/TradePointOrderHandler.java
... ... @@ -5,11 +5,13 @@ import cn.hutool.core.lang.Assert;
5 5 import cn.iocoder.yudao.module.promotion.api.point.PointActivityApi;
6 6 import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
7 7 import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO;
  8 +import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum;
8 9 import cn.iocoder.yudao.module.trade.enums.order.TradeOrderTypeEnum;
9 10 import jakarta.annotation.Resource;
10 11 import org.springframework.stereotype.Component;
11 12  
12 13 import java.util.List;
  14 +import java.util.Objects;
13 15  
14 16 /**
15 17 * 积分商城活动订单的 {@link TradeOrderHandler} 实现类
... ... @@ -33,6 +35,11 @@ public class TradePointOrderHandler implements TradeOrderHandler {
33 35 // 扣减积分商城活动的库存
34 36 pointActivityApi.updatePointStockDecr(order.getPointActivityId(),
35 37 orderItems.get(0).getSkuId(), orderItems.get(0).getCount());
  38 +
  39 + // 如果支付金额为 0,则直接设置为已支付
  40 + if (Objects.equals(order.getPayPrice(), 0)) {
  41 + order.setPayStatus(true).setStatus(TradeOrderStatusEnum.UNDELIVERED.getStatus());
  42 + }
36 43 }
37 44  
38 45 @Override
... ...