diff --git a/yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/api/coupon/CouponApi.java b/yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/api/coupon/CouponApi.java index bda835678..c724df8c1 100644 --- a/yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/api/coupon/CouponApi.java +++ b/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 { */ CouponRespDTO validateCoupon(@Valid CouponValidReqDTO validReqDTO); + // TODO @puhui999:可能需要根据 TradeOrderDO 的建议,进行修改;需要返回优惠劵编号 /** * 【管理员】给指定用户批量发送优惠券 * * @param giveCouponsMap key: 优惠劵编号,value:对应的优惠券数量 * @param userId 用户编号 */ + // TODO @puhui999:giveCouponsMap 可能改成 giveCoupons 更合适?优惠劵模版编号、数量 void takeCouponsByAdmin(Map giveCouponsMap, Long userId); + // TODO @puhui999:可能需要根据 TradeOrderDO 的建议,进行修改 giveCouponsMap 参数 /** - * 【管理员】收回给指定用户批量发送优惠券 + * 【管理员】作废指定用户的指定优惠劵 * * @param giveCouponsMap key: 优惠劵编号,value:对应的优惠券数量 * @param userId 用户编号 */ - void takeBackCouponsByAdmin(Map giveCouponsMap, Long userId); + void invalidateCouponsByAdmin(Map giveCouponsMap, Long userId); } diff --git a/yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/api/reward/dto/RewardActivityMatchRespDTO.java b/yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/api/reward/dto/RewardActivityMatchRespDTO.java index 9cdb922f1..93b5691fb 100644 --- a/yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/api/reward/dto/RewardActivityMatchRespDTO.java +++ b/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 { * 是否包邮 */ private Boolean freeDelivery; + // TODO @puhui999:建议不返回 + 去掉 givePoint、giveCoupon 字段哈。 /** * 是否赠送积分 */ @@ -98,10 +99,12 @@ public class RewardActivityMatchRespDTO { * 是否赠送优惠券 */ private Boolean giveCoupon; + // TODO @puhui999:giveCoupons 即可 /** * 赠送的优惠劵 * - * key: 优惠劵编号,value:对应的优惠券数量 + * key: 优惠劵模版编号 + * value:对应的优惠券数量 */ private Map giveCouponsMap; diff --git a/yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/enums/coupon/CouponStatusEnum.java b/yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/enums/coupon/CouponStatusEnum.java index 3edb3897f..831d4b5a0 100644 --- a/yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/enums/coupon/CouponStatusEnum.java +++ b/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 { UNUSED(1, "未使用"), USED(2, "已使用"), EXPIRE(3, "已过期"), + // TODO @puhui999:捉摸了下,貌似搞成逻辑删除好了?不然好多地方的 status 都要做一些变动。可能未来加个 invalidateType 来标识,是管理后台删除,还是取消回收。或者优惠劵的 change log 可能更好。 INVALID(4, "已作废"); public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(CouponStatusEnum::getStatus).toArray(); diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/api/coupon/CouponApiImpl.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/api/coupon/CouponApiImpl.java index b4778d0fe..22fea4525 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/api/coupon/CouponApiImpl.java +++ b/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 { } @Override - public void takeBackCouponsByAdmin(Map giveCouponsMap, Long userId) { - couponService.takeBackCouponsByAdmin(giveCouponsMap, userId); + public void invalidateCouponsByAdmin(Map giveCouponsMap, Long userId) { + couponService.invalidateCouponsByAdmin(giveCouponsMap, userId); } } diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/coupon/CouponService.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/coupon/CouponService.java index 628a42e7f..97c1412ca 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/coupon/CouponService.java +++ b/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 { * @param giveCouponsMap key: 优惠劵编号,value:对应的优惠券数量 * @param userId 用户编号 */ - void takeBackCouponsByAdmin(Map giveCouponsMap, Long userId); + void invalidateCouponsByAdmin(Map giveCouponsMap, Long userId); /** * 【会员】领取优惠券 diff --git a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/coupon/CouponServiceImpl.java b/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/coupon/CouponServiceImpl.java index aff7579de..666a310e7 100644 --- a/yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/coupon/CouponServiceImpl.java +++ b/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 { } @Override - public void takeBackCouponsByAdmin(Map giveCouponsMap, Long userId) { + public void invalidateCouponsByAdmin(Map giveCouponsMap, Long userId) { // 循环收回 for (Map.Entry entry : giveCouponsMap.entrySet()) { try { diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderDO.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderDO.java index 710d8dc3f..82b6d6117 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderDO.java +++ b/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 { */ private Integer vipPrice; + // TODO @puhui999:项了下,貌似这里存储 List giveCouponIds 更合适。因为优惠劵赠送到最后是对应的编号,然后从而进行取消? /** * 赠送的优惠劵 * - * key: 优惠劵编号,value:对应的优惠券数量 + * key: 优惠劵编号 + * value:对应的优惠券数量 + * * 目的:用于后续取消或者售后订单时,需要扣减赠送 */ @TableField(typeHandler = JacksonTypeHandler.class) diff --git a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/handler/TradeCouponOrderHandler.java b/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/handler/TradeCouponOrderHandler.java index e364bc007..3b1df5e0e 100644 --- a/yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/handler/TradeCouponOrderHandler.java +++ b/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 { if (CollUtil.isEmpty(order.getGiveCouponsMap())) { return; } - couponApi.takeBackCouponsByAdmin(order.getGiveCouponsMap(), order.getUserId()); + couponApi.invalidateCouponsByAdmin(order.getGiveCouponsMap(), order.getUserId()); } }