Commit 42fcbe0501eb61a7e10f74061f4bb729679bad3f

Authored by puhui999
1 parent 245f14b8

砍价活动:完成订单取消时恢复活动库存

yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/bargain/BargainActivityServiceImpl.java
@@ -85,11 +85,16 @@ public class BargainActivityServiceImpl implements BargainActivityService { @@ -85,11 +85,16 @@ public class BargainActivityServiceImpl implements BargainActivityService {
85 85
86 @Override 86 @Override
87 public void updateBargainActivityStock(Long id, Integer count) { 87 public void updateBargainActivityStock(Long id, Integer count) {
88 - // 更新库存。如果更新失败,则抛出异常  
89 - int updateCount = bargainActivityMapper.updateStock(id, count);  
90 - if (updateCount == 0) {  
91 - throw exception(BARGAIN_ACTIVITY_STOCK_NOT_ENOUGH); 88 + if (count < 0) {
  89 + // 更新库存。如果更新失败,则抛出异常
  90 + int updateCount = bargainActivityMapper.updateStock(id, count);
  91 + if (updateCount == 0) {
  92 + throw exception(BARGAIN_ACTIVITY_STOCK_NOT_ENOUGH);
  93 + }
  94 + } else if (count > 0) {
  95 + bargainActivityMapper.updateStock(id, count);
92 } 96 }
  97 +
93 } 98 }
94 99
95 private void validateBargainConflict(Long spuId, Long activityId) { 100 private void validateBargainConflict(Long spuId, Long activityId) {
@@ -140,7 +145,7 @@ public class BargainActivityServiceImpl implements BargainActivityService { @@ -140,7 +145,7 @@ public class BargainActivityServiceImpl implements BargainActivityService {
140 145
141 @Override 146 @Override
142 public List<BargainActivityDO> getBargainActivityList(Set<Long> ids) { 147 public List<BargainActivityDO> getBargainActivityList(Set<Long> ids) {
143 - return bargainActivityMapper.selectBatchIds(ids); 148 + return bargainActivityMapper.selectBatchIds(ids);
144 } 149 }
145 150
146 @Override 151 @Override
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/handler/TradeBargainHandler.java
1 package cn.iocoder.yudao.module.trade.service.order.handler; 1 package cn.iocoder.yudao.module.trade.service.order.handler;
2 2
  3 +import cn.hutool.core.lang.Assert;
3 import cn.iocoder.yudao.module.promotion.api.bargain.BargainActivityApi; 4 import cn.iocoder.yudao.module.promotion.api.bargain.BargainActivityApi;
4 import cn.iocoder.yudao.module.promotion.api.bargain.BargainRecordApi; 5 import cn.iocoder.yudao.module.promotion.api.bargain.BargainRecordApi;
5 import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; 6 import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
@@ -28,6 +29,8 @@ public class TradeBargainHandler implements TradeOrderHandler { @@ -28,6 +29,8 @@ public class TradeBargainHandler implements TradeOrderHandler {
28 if (TradeOrderTypeEnum.isBargain(order.getType())) { 29 if (TradeOrderTypeEnum.isBargain(order.getType())) {
29 return; 30 return;
30 } 31 }
  32 + // 明确校验一下
  33 + Assert.isTrue(orderItems.size() == 1, "砍价时,只允许选择一个商品");
31 34
32 // 扣减砍价活动的库存 35 // 扣减砍价活动的库存
33 bargainActivityApi.updateBargainActivityStock(order.getBargainActivityId(), 36 bargainActivityApi.updateBargainActivityStock(order.getBargainActivityId(),
@@ -39,6 +42,8 @@ public class TradeBargainHandler implements TradeOrderHandler { @@ -39,6 +42,8 @@ public class TradeBargainHandler implements TradeOrderHandler {
39 if (TradeOrderTypeEnum.isBargain(order.getType())) { 42 if (TradeOrderTypeEnum.isBargain(order.getType())) {
40 return; 43 return;
41 } 44 }
  45 + // 明确校验一下
  46 + Assert.isTrue(orderItems.size() == 1, "砍价时,只允许选择一个商品");
42 47
43 // 记录砍价记录对应的订单编号 48 // 记录砍价记录对应的订单编号
44 bargainRecordApi.updateBargainRecordOrderId(order.getBargainRecordId(), order.getId()); 49 bargainRecordApi.updateBargainRecordOrderId(order.getBargainRecordId(), order.getId());
@@ -49,7 +54,12 @@ public class TradeBargainHandler implements TradeOrderHandler { @@ -49,7 +54,12 @@ public class TradeBargainHandler implements TradeOrderHandler {
49 if (TradeOrderTypeEnum.isBargain(order.getType())) { 54 if (TradeOrderTypeEnum.isBargain(order.getType())) {
50 return; 55 return;
51 } 56 }
52 - // TODO 芋艿:取消订单时,需要增加库存 57 + // 明确校验一下
  58 + Assert.isTrue(orderItems.size() == 1, "砍价时,只允许选择一个商品");
  59 +
  60 + // 恢复砍价活动的库存
  61 + bargainActivityApi.updateBargainActivityStock(order.getBargainActivityId(),
  62 + orderItems.get(0).getCount());
53 } 63 }
54 64
55 } 65 }
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/handler/TradeCombinationHandler.java
@@ -76,11 +76,4 @@ public class TradeCombinationHandler implements TradeOrderHandler { @@ -76,11 +76,4 @@ public class TradeCombinationHandler implements TradeOrderHandler {
76 recordIdAndHeadId.getKey(), recordIdAndHeadId.getValue()); 76 recordIdAndHeadId.getKey(), recordIdAndHeadId.getValue());
77 } 77 }
78 78
79 - @Override  
80 - public void cancelOrder(TradeOrderDO order, List<TradeOrderItemDO> orderItems) {  
81 - if (TradeOrderTypeEnum.isCombination(order.getType())) {  
82 - return;  
83 - }  
84 - }  
85 -  
86 } 79 }