Commit dc1347184fba2f5feec1a86fe34c35f48c9b3ee5

Authored by YunaiV
1 parent 20f5834d

code review:拼团、砍价活动

Showing 11 changed files with 15 additions and 64 deletions
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/combination/CombinationRecordServiceImpl.java
@@ -102,6 +102,7 @@ public class CombinationRecordServiceImpl implements CombinationRecordService { @@ -102,6 +102,7 @@ public class CombinationRecordServiceImpl implements CombinationRecordService {
102 return recordDO; 102 return recordDO;
103 } 103 }
104 104
  105 + // TODO @芋艿:在详细预览下;
105 @Override 106 @Override
106 public void validateCombinationRecord(Long activityId, Long userId, Long skuId, Integer count) { 107 public void validateCombinationRecord(Long activityId, Long userId, Long skuId, Integer count) {
107 // 1.1 校验拼团活动是否存在 108 // 1.1 校验拼团活动是否存在
@@ -132,12 +133,14 @@ public class CombinationRecordServiceImpl implements CombinationRecordService { @@ -132,12 +133,14 @@ public class CombinationRecordServiceImpl implements CombinationRecordService {
132 } 133 }
133 // 5.1、查询关联的订单是否已经支付 134 // 5.1、查询关联的订单是否已经支付
134 // 当前 activityId 已经有未支付的订单,不允许在发起新的;要么支付,要么去掉先; 135 // 当前 activityId 已经有未支付的订单,不允许在发起新的;要么支付,要么去掉先;
  136 + // TODO 芋艿:看看是不是可以删除掉;
135 Integer orderStatus = tradeOrderApi.getOrderStatus(record.getOrderId()); 137 Integer orderStatus = tradeOrderApi.getOrderStatus(record.getOrderId());
136 if (ObjectUtil.equal(orderStatus, TradeOrderStatusEnum.UNPAID.getStatus())) { 138 if (ObjectUtil.equal(orderStatus, TradeOrderStatusEnum.UNPAID.getStatus())) {
137 throw exception(COMBINATION_RECORD_FAILED_ORDER_STATUS_UNPAID); 139 throw exception(COMBINATION_RECORD_FAILED_ORDER_STATUS_UNPAID);
138 } 140 }
139 } 141 }
140 142
  143 + // TODO 芋艿:在详细 review 下;
141 @Override 144 @Override
142 @Transactional(rollbackFor = Exception.class) 145 @Transactional(rollbackFor = Exception.class)
143 public void createCombinationRecord(CombinationRecordCreateReqDTO reqDTO) { 146 public void createCombinationRecord(CombinationRecordCreateReqDTO reqDTO) {
yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/api/order/TradeOrderApi.java
@@ -7,6 +7,7 @@ package cn.iocoder.yudao.module.trade.api.order; @@ -7,6 +7,7 @@ package cn.iocoder.yudao.module.trade.api.order;
7 */ 7 */
8 public interface TradeOrderApi { 8 public interface TradeOrderApi {
9 9
  10 + // TODO 芋艿:看看是不是可以删除掉;
10 /** 11 /**
11 * 获取订单状态 12 * 获取订单状态
12 * 13 *
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderSettlementReqVO.java
1 package cn.iocoder.yudao.module.trade.controller.app.order.vo; 1 package cn.iocoder.yudao.module.trade.controller.app.order.vo;
2 2
  3 +import cn.hutool.core.util.ObjUtil;
3 import cn.iocoder.yudao.framework.common.validation.InEnum; 4 import cn.iocoder.yudao.framework.common.validation.InEnum;
4 import cn.iocoder.yudao.framework.common.validation.Mobile; 5 import cn.iocoder.yudao.framework.common.validation.Mobile;
5 import cn.iocoder.yudao.module.trade.enums.delivery.DeliveryTypeEnum; 6 import cn.iocoder.yudao.module.trade.enums.delivery.DeliveryTypeEnum;
@@ -67,7 +68,7 @@ public class AppTradeOrderSettlementReqVO { @@ -67,7 +68,7 @@ public class AppTradeOrderSettlementReqVO {
67 @JsonIgnore 68 @JsonIgnore
68 public boolean isValidActivityItems() { 69 public boolean isValidActivityItems() {
69 // 校验是否是活动订单 70 // 校验是否是活动订单
70 - if (seckillActivityId == null && combinationActivityId == null && combinationHeadId == null) { 71 + if (ObjUtil.isAllEmpty(seckillActivityId, combinationActivityId, combinationHeadId)) {
71 return true; 72 return true;
72 } 73 }
73 // 校验订单项是否超出 74 // 校验订单项是否超出
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/handler/TradeBargainHandler.java
@@ -14,7 +14,7 @@ import javax.annotation.Resource; @@ -14,7 +14,7 @@ import javax.annotation.Resource;
14 * @author HUIHUI 14 * @author HUIHUI
15 */ 15 */
16 @Component 16 @Component
17 -public class TradeBargainHandler extends TradeOrderDefaultHandler { 17 +public class TradeBargainHandler implements TradeOrderHandler {
18 18
19 @Resource 19 @Resource
20 private BargainActivityApi bargainActivityApi; 20 private BargainActivityApi bargainActivityApi;
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/handler/TradeCombinationHandler.java
@@ -17,7 +17,7 @@ import javax.annotation.Resource; @@ -17,7 +17,7 @@ import javax.annotation.Resource;
17 * @author HUIHUI 17 * @author HUIHUI
18 */ 18 */
19 @Component 19 @Component
20 -public class TradeCombinationHandler extends TradeOrderDefaultHandler { 20 +public class TradeCombinationHandler implements TradeOrderHandler {
21 21
22 @Resource 22 @Resource
23 private CombinationRecordApi combinationRecordApi; 23 private CombinationRecordApi combinationRecordApi;
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/handler/TradeOrderDefaultHandler.java deleted
1 -package cn.iocoder.yudao.module.trade.service.order.handler;  
2 -  
3 -import cn.iocoder.yudao.module.trade.service.order.bo.TradeAfterOrderCreateReqBO;  
4 -import cn.iocoder.yudao.module.trade.service.order.bo.TradeAfterPayOrderReqBO;  
5 -import cn.iocoder.yudao.module.trade.service.order.bo.TradeBeforeOrderCreateReqBO;  
6 -  
7 -/**  
8 - * 订单活动特殊逻辑处理器 handler 默认抽象实现类  
9 - *  
10 - * @author HUIHUI  
11 - */  
12 -public abstract class TradeOrderDefaultHandler implements TradeOrderHandler {  
13 -  
14 - @Override  
15 - public void beforeOrderCreate(TradeBeforeOrderCreateReqBO reqBO) {  
16 -  
17 - }  
18 -  
19 - @Override  
20 - public void afterOrderCreate(TradeAfterOrderCreateReqBO reqBO) {  
21 -  
22 - }  
23 -  
24 - @Override  
25 - public void afterPayOrder(TradeAfterPayOrderReqBO reqBO) {  
26 -  
27 - }  
28 -  
29 - @Override  
30 - public void cancelOrder() {  
31 -  
32 - }  
33 -  
34 -}  
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/handler/TradeOrderHandler.java
@@ -17,25 +17,25 @@ public interface TradeOrderHandler { @@ -17,25 +17,25 @@ public interface TradeOrderHandler {
17 * 17 *
18 * @param reqBO 请求 18 * @param reqBO 请求
19 */ 19 */
20 - void beforeOrderCreate(TradeBeforeOrderCreateReqBO reqBO); 20 + default void beforeOrderCreate(TradeBeforeOrderCreateReqBO reqBO) {}
21 21
22 /** 22 /**
23 * 订单创建后 23 * 订单创建后
24 * 24 *
25 * @param reqBO 请求 25 * @param reqBO 请求
26 */ 26 */
27 - void afterOrderCreate(TradeAfterOrderCreateReqBO reqBO); 27 + default void afterOrderCreate(TradeAfterOrderCreateReqBO reqBO) {}
28 28
29 /** 29 /**
30 * 支付订单后 30 * 支付订单后
31 * 31 *
32 * @param reqBO 请求 32 * @param reqBO 请求
33 */ 33 */
34 - void afterPayOrder(TradeAfterPayOrderReqBO reqBO); 34 + default void afterPayOrder(TradeAfterPayOrderReqBO reqBO) {}
35 35
36 /** 36 /**
37 * 订单取消 37 * 订单取消
38 */ 38 */
39 - void cancelOrder(); 39 + default void cancelOrder() {}
40 40
41 } 41 }
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/handler/TradeSeckillHandler.java
@@ -14,7 +14,7 @@ import javax.annotation.Resource; @@ -14,7 +14,7 @@ import javax.annotation.Resource;
14 * @author HUIHUI 14 * @author HUIHUI
15 */ 15 */
16 @Component 16 @Component
17 -public class TradeSeckillHandler extends TradeOrderDefaultHandler { 17 +public class TradeSeckillHandler implements TradeOrderHandler {
18 18
19 @Resource 19 @Resource
20 private SeckillActivityApi seckillActivityApi; 20 private SeckillActivityApi seckillActivityApi;
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/bo/TradePriceCalculateRespBO.java
@@ -99,18 +99,8 @@ public class TradePriceCalculateRespBO { @@ -99,18 +99,8 @@ public class TradePriceCalculateRespBO {
99 */ 99 */
100 private Integer vipPrice; 100 private Integer vipPrice;
101 /** 101 /**
102 - * 秒杀、拼团、砍价活动商品的总金额,单位:分  
103 - *  
104 - * 基于 {@link OrderItem#getActivityPrice()} ()} * {@link OrderItem#getCount()} 求和  
105 - */  
106 - private Integer activityPrice;  
107 - /**  
108 * 最终购买金额(总),单位:分 102 * 最终购买金额(总),单位:分
109 * 103 *
110 - * ==========活动情况===========  
111 - * = {@link #activityPrice}  
112 - * + {@link #deliveryPrice}  
113 - * ==========正常情况===========  
114 * = {@link #totalPrice} 104 * = {@link #totalPrice}
115 * - {@link #couponPrice} 105 * - {@link #couponPrice}
116 * - {@link #pointPrice} 106 * - {@link #pointPrice}
@@ -187,15 +177,8 @@ public class TradePriceCalculateRespBO { @@ -187,15 +177,8 @@ public class TradePriceCalculateRespBO {
187 */ 177 */
188 private Integer vipPrice; 178 private Integer vipPrice;
189 /** 179 /**
190 - * 秒杀、拼团、砍价活动商品的金额,单位:分  
191 - */  
192 - private Integer activityPrice;  
193 - /**  
194 * 应付金额(总),单位:分 180 * 应付金额(总),单位:分
195 - * ==========活动情况===========  
196 - * = {@link #activityPrice} * {@link #count}  
197 - * + {@link #deliveryPrice}  
198 - * ==========正常情况=========== 181 + *
199 * = {@link #price} * {@link #count} 182 * = {@link #price} * {@link #count}
200 * - {@link #couponPrice} 183 * - {@link #couponPrice}
201 * - {@link #pointPrice} 184 * - {@link #pointPrice}
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradePriceCalculatorHelper.java
@@ -105,9 +105,6 @@ public class TradePriceCalculatorHelper { @@ -105,9 +105,6 @@ public class TradePriceCalculatorHelper {
105 if (!item.getSelected()) { 105 if (!item.getSelected()) {
106 return; 106 return;
107 } 107 }
108 - // TODO puhui: 需要在这里计算活动的价格  
109 - // ========== 一、活动情况 ==========  
110 - // ========== 二、正常情况 ==========  
111 price.setTotalPrice(price.getTotalPrice() + item.getPrice() * item.getCount()); 108 price.setTotalPrice(price.getTotalPrice() + item.getPrice() * item.getCount());
112 price.setDiscountPrice(price.getDiscountPrice() + item.getDiscountPrice()); 109 price.setDiscountPrice(price.getDiscountPrice() + item.getDiscountPrice());
113 price.setDeliveryPrice(price.getDeliveryPrice() + item.getDeliveryPrice()); 110 price.setDeliveryPrice(price.getDeliveryPrice() + item.getDeliveryPrice());
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradeSeckillActivityPriceCalculator.java
@@ -46,7 +46,7 @@ public class TradeSeckillActivityPriceCalculator implements TradePriceCalculator @@ -46,7 +46,7 @@ public class TradeSeckillActivityPriceCalculator implements TradePriceCalculator
46 orderItem.getSkuId(), orderItem.getCount()); 46 orderItem.getSkuId(), orderItem.getCount());
47 47
48 // 3.1 记录优惠明细 48 // 3.1 记录优惠明细
49 - Integer discountPrice = orderItem.getPayPrice() - seckillActivity.getSeckillPrice(); 49 + Integer discountPrice = orderItem.getPayPrice() - seckillActivity.getSeckillPrice() * orderItem.getCount();
50 TradePriceCalculatorHelper.addPromotion(result, orderItem, 50 TradePriceCalculatorHelper.addPromotion(result, orderItem,
51 param.getSeckillActivityId(), seckillActivity.getName(), PromotionTypeEnum.SECKILL_ACTIVITY.getType(), 51 param.getSeckillActivityId(), seckillActivity.getName(), PromotionTypeEnum.SECKILL_ACTIVITY.getType(),
52 StrUtil.format("秒杀活动:省 {} 元", TradePriceCalculatorHelper.formatPrice(discountPrice)), 52 StrUtil.format("秒杀活动:省 {} 元", TradePriceCalculatorHelper.formatPrice(discountPrice)),