mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-10-31 18:28:43 +08:00 
			
		
		
		
	trade:完善砍价的下单流程
This commit is contained in:
		| @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.trade.service.order.handler; | ||||
|  | ||||
| import cn.hutool.core.util.ObjectUtil; | ||||
| import cn.iocoder.yudao.module.promotion.api.bargain.BargainActivityApi; | ||||
| import cn.iocoder.yudao.module.promotion.api.bargain.BargainRecordApi; | ||||
| import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; | ||||
| import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO; | ||||
| import cn.iocoder.yudao.module.trade.enums.order.TradeOrderTypeEnum; | ||||
| @@ -20,6 +21,8 @@ public class TradeBargainHandler implements TradeOrderHandler { | ||||
|  | ||||
|     @Resource | ||||
|     private BargainActivityApi bargainActivityApi; | ||||
|     @Resource | ||||
|     private BargainRecordApi bargainRecordApi; | ||||
|  | ||||
|     @Override | ||||
|     public void beforeOrderCreate(TradeOrderDO order, List<TradeOrderItemDO> orderItems) { | ||||
| @@ -28,7 +31,18 @@ public class TradeBargainHandler implements TradeOrderHandler { | ||||
|         } | ||||
|         // 扣减砍价活动的库存 | ||||
|         bargainActivityApi.updateBargainActivityStock(order.getBargainActivityId(), | ||||
|                 orderItems.get(0).getCount()); | ||||
|                 -orderItems.get(0).getCount()); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void afterOrderCreate(TradeOrderDO order, List<TradeOrderItemDO> orderItems) { | ||||
|         if (ObjectUtil.notEqual(TradeOrderTypeEnum.BARGAIN.getType(), order.getType())) { | ||||
|             return; | ||||
|         } | ||||
|         // 记录砍价记录对应的订单编号 | ||||
|         bargainRecordApi.updateBargainRecordOrderId(order.getBargainRecordId(), order.getId()); | ||||
|     } | ||||
|  | ||||
|     // TODO 芋艿:取消订单时,需要增加库存 | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -1,10 +1,12 @@ | ||||
| package cn.iocoder.yudao.module.trade.service.price.calculator; | ||||
|  | ||||
| import cn.hutool.core.lang.Assert; | ||||
| import cn.hutool.core.util.ObjectUtil; | ||||
| import cn.hutool.core.util.StrUtil; | ||||
| import cn.iocoder.yudao.module.promotion.api.bargain.BargainRecordApi; | ||||
| import cn.iocoder.yudao.module.promotion.api.bargain.dto.BargainValidateJoinRespDTO; | ||||
| import cn.iocoder.yudao.module.promotion.enums.common.PromotionTypeEnum; | ||||
| import cn.iocoder.yudao.module.trade.enums.order.TradeOrderTypeEnum; | ||||
| import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateReqBO; | ||||
| import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateRespBO; | ||||
| import org.springframework.core.annotation.Order; | ||||
| @@ -28,7 +30,7 @@ public class TradeBargainActivityPriceCalculator implements TradePriceCalculator | ||||
|     @Override | ||||
|     public void calculate(TradePriceCalculateReqBO param, TradePriceCalculateRespBO result) { | ||||
|         // 1. 判断订单类型和是否具有拼团记录编号 | ||||
|         if (param.getBargainRecordId() != null) { | ||||
|         if (ObjectUtil.notEqual(result.getType(), TradeOrderTypeEnum.BARGAIN.getType())) { | ||||
|             return; | ||||
|         } | ||||
|         Assert.isTrue(param.getItems().size() == 1, "砍价时,只允许选择一个商品"); | ||||
| @@ -40,6 +42,7 @@ public class TradeBargainActivityPriceCalculator implements TradePriceCalculator | ||||
|  | ||||
|         // 3.1 记录优惠明细 | ||||
|         Integer discountPrice = orderItem.getPayPrice() - bargainActivity.getBargainPrice() * orderItem.getCount(); | ||||
|         // TODO 芋艿:极端情况,优惠金额为负数,需要处理 | ||||
|         TradePriceCalculatorHelper.addPromotion(result, orderItem, | ||||
|                 param.getSeckillActivityId(), bargainActivity.getName(), PromotionTypeEnum.BARGAIN_ACTIVITY.getType(), | ||||
|                 StrUtil.format("砍价活动:省 {} 元", TradePriceCalculatorHelper.formatPrice(discountPrice)), | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 YunaiV
					YunaiV