Commit 88cc4c987b26c2e9ebb37da4c944932f3ab729b6

Authored by YunaiV
1 parent 69d1a709

【代码评审】商城:满减送订单

yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/api/coupon/CouponApi.java
@@ -36,20 +36,23 @@ public interface CouponApi { @@ -36,20 +36,23 @@ public interface CouponApi {
36 */ 36 */
37 CouponRespDTO validateCoupon(@Valid CouponValidReqDTO validReqDTO); 37 CouponRespDTO validateCoupon(@Valid CouponValidReqDTO validReqDTO);
38 38
  39 + // TODO @puhui999:可能需要根据 TradeOrderDO 的建议,进行修改;需要返回优惠劵编号
39 /** 40 /**
40 * 【管理员】给指定用户批量发送优惠券 41 * 【管理员】给指定用户批量发送优惠券
41 * 42 *
42 * @param giveCouponsMap key: 优惠劵编号,value:对应的优惠券数量 43 * @param giveCouponsMap key: 优惠劵编号,value:对应的优惠券数量
43 * @param userId 用户编号 44 * @param userId 用户编号
44 */ 45 */
  46 + // TODO @puhui999:giveCouponsMap 可能改成 giveCoupons 更合适?优惠劵模版编号、数量
45 void takeCouponsByAdmin(Map<Long, Integer> giveCouponsMap, Long userId); 47 void takeCouponsByAdmin(Map<Long, Integer> giveCouponsMap, Long userId);
46 48
  49 + // TODO @puhui999:可能需要根据 TradeOrderDO 的建议,进行修改 giveCouponsMap 参数
47 /** 50 /**
48 - * 【管理员】收回给指定用户批量发送优惠券 51 + * 【管理员】作废指定用户的指定优惠劵
49 * 52 *
50 * @param giveCouponsMap key: 优惠劵编号,value:对应的优惠券数量 53 * @param giveCouponsMap key: 优惠劵编号,value:对应的优惠券数量
51 * @param userId 用户编号 54 * @param userId 用户编号
52 */ 55 */
53 - void takeBackCouponsByAdmin(Map<Long, Integer> giveCouponsMap, Long userId); 56 + void invalidateCouponsByAdmin(Map<Long, Integer> giveCouponsMap, Long userId);
54 57
55 } 58 }
yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/api/reward/dto/RewardActivityMatchRespDTO.java
@@ -86,6 +86,7 @@ public class RewardActivityMatchRespDTO { @@ -86,6 +86,7 @@ public class RewardActivityMatchRespDTO {
86 * 是否包邮 86 * 是否包邮
87 */ 87 */
88 private Boolean freeDelivery; 88 private Boolean freeDelivery;
  89 + // TODO @puhui999:建议不返回 + 去掉 givePoint、giveCoupon 字段哈。
89 /** 90 /**
90 * 是否赠送积分 91 * 是否赠送积分
91 */ 92 */
@@ -98,10 +99,12 @@ public class RewardActivityMatchRespDTO { @@ -98,10 +99,12 @@ public class RewardActivityMatchRespDTO {
98 * 是否赠送优惠券 99 * 是否赠送优惠券
99 */ 100 */
100 private Boolean giveCoupon; 101 private Boolean giveCoupon;
  102 + // TODO @puhui999:giveCoupons 即可
101 /** 103 /**
102 * 赠送的优惠劵 104 * 赠送的优惠劵
103 * 105 *
104 - * key: 优惠劵编号,value:对应的优惠券数量 106 + * key: 优惠劵模版编号
  107 + * value:对应的优惠券数量
105 */ 108 */
106 private Map<Long, Integer> giveCouponsMap; 109 private Map<Long, Integer> giveCouponsMap;
107 110
yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/enums/coupon/CouponStatusEnum.java
@@ -18,6 +18,7 @@ public enum CouponStatusEnum implements IntArrayValuable { @@ -18,6 +18,7 @@ public enum CouponStatusEnum implements IntArrayValuable {
18 UNUSED(1, "未使用"), 18 UNUSED(1, "未使用"),
19 USED(2, "已使用"), 19 USED(2, "已使用"),
20 EXPIRE(3, "已过期"), 20 EXPIRE(3, "已过期"),
  21 + // TODO @puhui999:捉摸了下,貌似搞成逻辑删除好了?不然好多地方的 status 都要做一些变动。可能未来加个 invalidateType 来标识,是管理后台删除,还是取消回收。或者优惠劵的 change log 可能更好。
21 INVALID(4, "已作废"); 22 INVALID(4, "已作废");
22 23
23 public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(CouponStatusEnum::getStatus).toArray(); 24 public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(CouponStatusEnum::getStatus).toArray();
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/api/coupon/CouponApiImpl.java
@@ -48,8 +48,8 @@ public class CouponApiImpl implements CouponApi { @@ -48,8 +48,8 @@ public class CouponApiImpl implements CouponApi {
48 } 48 }
49 49
50 @Override 50 @Override
51 - public void takeBackCouponsByAdmin(Map<Long, Integer> giveCouponsMap, Long userId) {  
52 - couponService.takeBackCouponsByAdmin(giveCouponsMap, userId); 51 + public void invalidateCouponsByAdmin(Map<Long, Integer> giveCouponsMap, Long userId) {
  52 + couponService.invalidateCouponsByAdmin(giveCouponsMap, userId);
53 } 53 }
54 54
55 } 55 }
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/coupon/CouponService.java
@@ -119,7 +119,7 @@ public interface CouponService { @@ -119,7 +119,7 @@ public interface CouponService {
119 * @param giveCouponsMap key: 优惠劵编号,value:对应的优惠券数量 119 * @param giveCouponsMap key: 优惠劵编号,value:对应的优惠券数量
120 * @param userId 用户编号 120 * @param userId 用户编号
121 */ 121 */
122 - void takeBackCouponsByAdmin(Map<Long, Integer> giveCouponsMap, Long userId); 122 + void invalidateCouponsByAdmin(Map<Long, Integer> giveCouponsMap, Long userId);
123 123
124 /** 124 /**
125 * 【会员】领取优惠券 125 * 【会员】领取优惠券
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/coupon/CouponServiceImpl.java
@@ -198,7 +198,7 @@ public class CouponServiceImpl implements CouponService { @@ -198,7 +198,7 @@ public class CouponServiceImpl implements CouponService {
198 } 198 }
199 199
200 @Override 200 @Override
201 - public void takeBackCouponsByAdmin(Map<Long, Integer> giveCouponsMap, Long userId) { 201 + public void invalidateCouponsByAdmin(Map<Long, Integer> giveCouponsMap, Long userId) {
202 // 循环收回 202 // 循环收回
203 for (Map.Entry<Long, Integer> entry : giveCouponsMap.entrySet()) { 203 for (Map.Entry<Long, Integer> entry : giveCouponsMap.entrySet()) {
204 try { 204 try {
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderDO.java
@@ -294,10 +294,13 @@ public class TradeOrderDO extends BaseDO { @@ -294,10 +294,13 @@ public class TradeOrderDO extends BaseDO {
294 */ 294 */
295 private Integer vipPrice; 295 private Integer vipPrice;
296 296
  297 + // TODO @puhui999:项了下,貌似这里存储 List<Long> giveCouponIds 更合适。因为优惠劵赠送到最后是对应的编号,然后从而进行取消?
297 /** 298 /**
298 * 赠送的优惠劵 299 * 赠送的优惠劵
299 * 300 *
300 - * key: 优惠劵编号,value:对应的优惠券数量 301 + * key: 优惠劵编号
  302 + * value:对应的优惠券数量
  303 + *
301 * 目的:用于后续取消或者售后订单时,需要扣减赠送 304 * 目的:用于后续取消或者售后订单时,需要扣减赠送
302 */ 305 */
303 @TableField(typeHandler = JacksonTypeHandler.class) 306 @TableField(typeHandler = JacksonTypeHandler.class)
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/handler/TradeCouponOrderHandler.java
@@ -51,7 +51,7 @@ public class TradeCouponOrderHandler implements TradeOrderHandler { @@ -51,7 +51,7 @@ public class TradeCouponOrderHandler implements TradeOrderHandler {
51 if (CollUtil.isEmpty(order.getGiveCouponsMap())) { 51 if (CollUtil.isEmpty(order.getGiveCouponsMap())) {
52 return; 52 return;
53 } 53 }
54 - couponApi.takeBackCouponsByAdmin(order.getGiveCouponsMap(), order.getUserId()); 54 + couponApi.invalidateCouponsByAdmin(order.getGiveCouponsMap(), order.getUserId());
55 } 55 }
56 56
57 } 57 }