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 36 */
37 37 CouponRespDTO validateCoupon(@Valid CouponValidReqDTO validReqDTO);
38 38  
  39 + // TODO @puhui999:可能需要根据 TradeOrderDO 的建议,进行修改;需要返回优惠劵编号
39 40 /**
40 41 * 【管理员】给指定用户批量发送优惠券
41 42 *
42 43 * @param giveCouponsMap key: 优惠劵编号,value:对应的优惠券数量
43 44 * @param userId 用户编号
44 45 */
  46 + // TODO @puhui999:giveCouponsMap 可能改成 giveCoupons 更合适?优惠劵模版编号、数量
45 47 void takeCouponsByAdmin(Map<Long, Integer> giveCouponsMap, Long userId);
46 48  
  49 + // TODO @puhui999:可能需要根据 TradeOrderDO 的建议,进行修改 giveCouponsMap 参数
47 50 /**
48   - * 【管理员】收回给指定用户批量发送优惠券
  51 + * 【管理员】作废指定用户的指定优惠劵
49 52 *
50 53 * @param giveCouponsMap key: 优惠劵编号,value:对应的优惠券数量
51 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 86 * 是否包邮
87 87 */
88 88 private Boolean freeDelivery;
  89 + // TODO @puhui999:建议不返回 + 去掉 givePoint、giveCoupon 字段哈。
89 90 /**
90 91 * 是否赠送积分
91 92 */
... ... @@ -98,10 +99,12 @@ public class RewardActivityMatchRespDTO {
98 99 * 是否赠送优惠券
99 100 */
100 101 private Boolean giveCoupon;
  102 + // TODO @puhui999:giveCoupons 即可
101 103 /**
102 104 * 赠送的优惠劵
103 105 *
104   - * key: 优惠劵编号,value:对应的优惠券数量
  106 + * key: 优惠劵模版编号
  107 + * value:对应的优惠券数量
105 108 */
106 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 18 UNUSED(1, "未使用"),
19 19 USED(2, "已使用"),
20 20 EXPIRE(3, "已过期"),
  21 + // TODO @puhui999:捉摸了下,貌似搞成逻辑删除好了?不然好多地方的 status 都要做一些变动。可能未来加个 invalidateType 来标识,是管理后台删除,还是取消回收。或者优惠劵的 change log 可能更好。
21 22 INVALID(4, "已作废");
22 23  
23 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 48 }
49 49  
50 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 119 * @param giveCouponsMap key: 优惠劵编号,value:对应的优惠券数量
120 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 198 }
199 199  
200 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 203 for (Map.Entry<Long, Integer> entry : giveCouponsMap.entrySet()) {
204 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 294 */
295 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 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 51 if (CollUtil.isEmpty(order.getGiveCouponsMap())) {
52 52 return;
53 53 }
54   - couponApi.takeBackCouponsByAdmin(order.getGiveCouponsMap(), order.getUserId());
  54 + couponApi.invalidateCouponsByAdmin(order.getGiveCouponsMap(), order.getUserId());
55 55 }
56 56  
57 57 }
... ...