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 | 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 | } | ... | ... |