Commit 2c4d8298cfe3d349149ab76729bf77d1c453542a
1 parent
e604cba3
【代码评审】商城:纯积分兑换时,直接设置为待发货
Showing
2 changed files
with
11 additions
and
1 deletions
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 | ... | ... |