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

This commit is contained in:
YunaiV 2024-08-30 21:37:51 +08:00
parent 69d1a70900
commit 88cc4c987b
8 changed files with 19 additions and 9 deletions

View File

@ -36,20 +36,23 @@ public interface CouponApi {
*/ */
CouponRespDTO validateCoupon(@Valid CouponValidReqDTO validReqDTO); CouponRespDTO validateCoupon(@Valid CouponValidReqDTO validReqDTO);
// TODO @puhui999可能需要根据 TradeOrderDO 的建议进行修改需要返回优惠劵编号
/** /**
* 管理员给指定用户批量发送优惠券 * 管理员给指定用户批量发送优惠券
* *
* @param giveCouponsMap key: 优惠劵编号value对应的优惠券数量 * @param giveCouponsMap key: 优惠劵编号value对应的优惠券数量
* @param userId 用户编号 * @param userId 用户编号
*/ */
// TODO @puhui999giveCouponsMap 可能改成 giveCoupons 更合适优惠劵模版编号数量
void takeCouponsByAdmin(Map<Long, Integer> giveCouponsMap, Long userId); void takeCouponsByAdmin(Map<Long, Integer> giveCouponsMap, Long userId);
// TODO @puhui999可能需要根据 TradeOrderDO 的建议进行修改 giveCouponsMap 参数
/** /**
* 管理员收回给指定用户批量发送优惠券 * 管理员作废指定用户的指定优惠劵
* *
* @param giveCouponsMap key: 优惠劵编号value对应的优惠券数量 * @param giveCouponsMap key: 优惠劵编号value对应的优惠券数量
* @param userId 用户编号 * @param userId 用户编号
*/ */
void takeBackCouponsByAdmin(Map<Long, Integer> giveCouponsMap, Long userId); void invalidateCouponsByAdmin(Map<Long, Integer> giveCouponsMap, Long userId);
} }

View File

@ -86,6 +86,7 @@ public class RewardActivityMatchRespDTO {
* 是否包邮 * 是否包邮
*/ */
private Boolean freeDelivery; private Boolean freeDelivery;
// TODO @puhui999建议不返回 + 去掉 givePointgiveCoupon 字段哈
/** /**
* 是否赠送积分 * 是否赠送积分
*/ */
@ -98,10 +99,12 @@ public class RewardActivityMatchRespDTO {
* 是否赠送优惠券 * 是否赠送优惠券
*/ */
private Boolean giveCoupon; private Boolean giveCoupon;
// TODO @puhui999giveCoupons 即可
/** /**
* 赠送的优惠劵 * 赠送的优惠劵
* *
* key: 优惠劵编号value对应的优惠券数量 * key: 优惠劵模版编号
* value对应的优惠券数量
*/ */
private Map<Long, Integer> giveCouponsMap; private Map<Long, Integer> giveCouponsMap;

View File

@ -18,6 +18,7 @@ public enum CouponStatusEnum implements IntArrayValuable {
UNUSED(1, "未使用"), UNUSED(1, "未使用"),
USED(2, "已使用"), USED(2, "已使用"),
EXPIRE(3, "已过期"), EXPIRE(3, "已过期"),
// TODO @puhui999捉摸了下貌似搞成逻辑删除好了不然好多地方的 status 都要做一些变动可能未来加个 invalidateType 来标识是管理后台删除还是取消回收或者优惠劵的 change log 可能更好
INVALID(4, "已作废"); INVALID(4, "已作废");
public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(CouponStatusEnum::getStatus).toArray(); public static final int[] ARRAYS = Arrays.stream(values()).mapToInt(CouponStatusEnum::getStatus).toArray();

View File

@ -48,8 +48,8 @@ public class CouponApiImpl implements CouponApi {
} }
@Override @Override
public void takeBackCouponsByAdmin(Map<Long, Integer> giveCouponsMap, Long userId) { public void invalidateCouponsByAdmin(Map<Long, Integer> giveCouponsMap, Long userId) {
couponService.takeBackCouponsByAdmin(giveCouponsMap, userId); couponService.invalidateCouponsByAdmin(giveCouponsMap, userId);
} }
} }

View File

@ -119,7 +119,7 @@ public interface CouponService {
* @param giveCouponsMap key: 优惠劵编号value对应的优惠券数量 * @param giveCouponsMap key: 优惠劵编号value对应的优惠券数量
* @param userId 用户编号 * @param userId 用户编号
*/ */
void takeBackCouponsByAdmin(Map<Long, Integer> giveCouponsMap, Long userId); void invalidateCouponsByAdmin(Map<Long, Integer> giveCouponsMap, Long userId);
/** /**
* 会员领取优惠券 * 会员领取优惠券

View File

@ -198,7 +198,7 @@ public class CouponServiceImpl implements CouponService {
} }
@Override @Override
public void takeBackCouponsByAdmin(Map<Long, Integer> giveCouponsMap, Long userId) { public void invalidateCouponsByAdmin(Map<Long, Integer> giveCouponsMap, Long userId) {
// 循环收回 // 循环收回
for (Map.Entry<Long, Integer> entry : giveCouponsMap.entrySet()) { for (Map.Entry<Long, Integer> entry : giveCouponsMap.entrySet()) {
try { try {

View File

@ -294,10 +294,13 @@ public class TradeOrderDO extends BaseDO {
*/ */
private Integer vipPrice; private Integer vipPrice;
// TODO @puhui999项了下貌似这里存储 List<Long> giveCouponIds 更合适因为优惠劵赠送到最后是对应的编号然后从而进行取消
/** /**
* 赠送的优惠劵 * 赠送的优惠劵
* *
* key: 优惠劵编号value对应的优惠券数量 * key: 优惠劵编号
* value对应的优惠券数量
*
* 目的用于后续取消或者售后订单时需要扣减赠送 * 目的用于后续取消或者售后订单时需要扣减赠送
*/ */
@TableField(typeHandler = JacksonTypeHandler.class) @TableField(typeHandler = JacksonTypeHandler.class)

View File

@ -51,7 +51,7 @@ public class TradeCouponOrderHandler implements TradeOrderHandler {
if (CollUtil.isEmpty(order.getGiveCouponsMap())) { if (CollUtil.isEmpty(order.getGiveCouponsMap())) {
return; return;
} }
couponApi.takeBackCouponsByAdmin(order.getGiveCouponsMap(), order.getUserId()); couponApi.invalidateCouponsByAdmin(order.getGiveCouponsMap(), order.getUserId());
} }
} }