Commit 88cc4c987b26c2e9ebb37da4c944932f3ab729b6
1 parent
69d1a709
【代码评审】商城:满减送订单
Showing
8 changed files
with
19 additions
and
9 deletions
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 | } |