Commit cccad2c6c1974dc7c98fcfaa12c86321bab7bf6f
1 parent
c4943e97
【代码评审】商城:取消拼团的支付单
Showing
7 changed files
with
35 additions
and
33 deletions
yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/enums/common/PromotionProductScopeEnum.java
| 1 | package cn.iocoder.yudao.module.promotion.enums.common; | 1 | package cn.iocoder.yudao.module.promotion.enums.common; |
| 2 | 2 | ||
| 3 | -import cn.hutool.core.util.ObjUtil; | ||
| 4 | import cn.iocoder.yudao.framework.common.core.IntArrayValuable; | 3 | import cn.iocoder.yudao.framework.common.core.IntArrayValuable; |
| 5 | import lombok.AllArgsConstructor; | 4 | import lombok.AllArgsConstructor; |
| 6 | import lombok.Getter; | 5 | import lombok.Getter; |
| 7 | 6 | ||
| 8 | import java.util.Arrays; | 7 | import java.util.Arrays; |
| 8 | +import java.util.Objects; | ||
| 9 | 9 | ||
| 10 | /** | 10 | /** |
| 11 | * 营销的商品范围枚举 | 11 | * 营销的商品范围枚举 |
| @@ -37,15 +37,15 @@ public enum PromotionProductScopeEnum implements IntArrayValuable { | @@ -37,15 +37,15 @@ public enum PromotionProductScopeEnum implements IntArrayValuable { | ||
| 37 | } | 37 | } |
| 38 | 38 | ||
| 39 | public static boolean isAll(Integer scope) { | 39 | public static boolean isAll(Integer scope) { |
| 40 | - return ObjUtil.equal(scope, ALL.scope); | 40 | + return Objects.equals(scope, ALL.scope); |
| 41 | } | 41 | } |
| 42 | 42 | ||
| 43 | public static boolean isSpu(Integer scope) { | 43 | public static boolean isSpu(Integer scope) { |
| 44 | - return ObjUtil.equal(scope, SPU.scope); | 44 | + return Objects.equals(scope, SPU.scope); |
| 45 | } | 45 | } |
| 46 | 46 | ||
| 47 | public static boolean isCategory(Integer scope) { | 47 | public static boolean isCategory(Integer scope) { |
| 48 | - return ObjUtil.equal(scope, CATEGORY.scope); | 48 | + return Objects.equals(scope, CATEGORY.scope); |
| 49 | } | 49 | } |
| 50 | 50 | ||
| 51 | } | 51 | } |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/controller/app/activity/AppActivityController.java
| @@ -53,6 +53,7 @@ public class AppActivityController { | @@ -53,6 +53,7 @@ public class AppActivityController { | ||
| 53 | private DiscountActivityService discountActivityService; | 53 | private DiscountActivityService discountActivityService; |
| 54 | @Resource | 54 | @Resource |
| 55 | private RewardActivityService rewardActivityService; | 55 | private RewardActivityService rewardActivityService; |
| 56 | + | ||
| 56 | @Resource | 57 | @Resource |
| 57 | private ProductSpuApi productSpuApi; | 58 | private ProductSpuApi productSpuApi; |
| 58 | 59 | ||
| @@ -91,7 +92,7 @@ public class AppActivityController { | @@ -91,7 +92,7 @@ public class AppActivityController { | ||
| 91 | // 4. 限时折扣活动 | 92 | // 4. 限时折扣活动 |
| 92 | getDiscountActivities(spuIds, now, activityList); | 93 | getDiscountActivities(spuIds, now, activityList); |
| 93 | // 5. 满减送活动 | 94 | // 5. 满减送活动 |
| 94 | - getRewardActivities(spuIds, now, activityList); | 95 | + getRewardActivityList(spuIds, now, activityList); |
| 95 | return activityList; | 96 | return activityList; |
| 96 | } | 97 | } |
| 97 | 98 | ||
| @@ -148,23 +149,9 @@ public class AppActivityController { | @@ -148,23 +149,9 @@ public class AppActivityController { | ||
| 148 | item.getName(), productMap.get(item.getId()), item.getStartTime(), item.getEndTime()))); | 149 | item.getName(), productMap.get(item.getId()), item.getStartTime(), item.getEndTime()))); |
| 149 | } | 150 | } |
| 150 | 151 | ||
| 151 | - private static void buildAppActivityRespVO(RewardActivityDO rewardActivity, Collection<Long> spuIds, | ||
| 152 | - List<AppActivityRespVO> activityList) { | ||
| 153 | - for (Long spuId : spuIds) { | ||
| 154 | - // 校验商品是否已经加入过活动 | ||
| 155 | - if (anyMatch(activityList, appActivity -> ObjUtil.equal(appActivity.getId(), rewardActivity.getId()) && | ||
| 156 | - ObjUtil.equal(appActivity.getSpuId(), spuId))) { | ||
| 157 | - continue; | ||
| 158 | - } | ||
| 159 | - activityList.add(new AppActivityRespVO(rewardActivity.getId(), | ||
| 160 | - PromotionTypeEnum.REWARD_ACTIVITY.getType(), rewardActivity.getName(), spuId, | ||
| 161 | - rewardActivity.getStartTime(), rewardActivity.getEndTime())); | ||
| 162 | - } | ||
| 163 | - } | ||
| 164 | - | ||
| 165 | - private void getRewardActivities(Collection<Long> spuIds, LocalDateTime now, List<AppActivityRespVO> activityList) { | 152 | + private void getRewardActivityList(Collection<Long> spuIds, LocalDateTime now, List<AppActivityRespVO> activityList) { |
| 166 | // 1.1 获得所有的活动 | 153 | // 1.1 获得所有的活动 |
| 167 | - List<RewardActivityDO> rewardActivityList = rewardActivityService.getRewardActivityByStatusAndDateTimeLt( | 154 | + List<RewardActivityDO> rewardActivityList = rewardActivityService.getRewardActivityListByStatusAndDateTimeLt( |
| 168 | CommonStatusEnum.ENABLE.getStatus(), now); | 155 | CommonStatusEnum.ENABLE.getStatus(), now); |
| 169 | if (CollUtil.isEmpty(rewardActivityList)) { | 156 | if (CollUtil.isEmpty(rewardActivityList)) { |
| 170 | return; | 157 | return; |
| @@ -196,4 +183,18 @@ public class AppActivityController { | @@ -196,4 +183,18 @@ public class AppActivityController { | ||
| 196 | } | 183 | } |
| 197 | } | 184 | } |
| 198 | 185 | ||
| 186 | + private static void buildAppActivityRespVO(RewardActivityDO rewardActivity, Collection<Long> spuIds, | ||
| 187 | + List<AppActivityRespVO> activityList) { | ||
| 188 | + for (Long spuId : spuIds) { | ||
| 189 | + // 校验商品是否已经加入过活动 | ||
| 190 | + if (anyMatch(activityList, appActivity -> ObjUtil.equal(appActivity.getId(), rewardActivity.getId()) && | ||
| 191 | + ObjUtil.equal(appActivity.getSpuId(), spuId))) { | ||
| 192 | + continue; | ||
| 193 | + } | ||
| 194 | + activityList.add(new AppActivityRespVO(rewardActivity.getId(), | ||
| 195 | + PromotionTypeEnum.REWARD_ACTIVITY.getType(), rewardActivity.getName(), spuId, | ||
| 196 | + rewardActivity.getStartTime(), rewardActivity.getEndTime())); | ||
| 197 | + } | ||
| 198 | + } | ||
| 199 | + | ||
| 199 | } | 200 | } |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/reward/RewardActivityService.java
| @@ -79,6 +79,6 @@ public interface RewardActivityService { | @@ -79,6 +79,6 @@ public interface RewardActivityService { | ||
| 79 | * @param dateTime 当前日期时间 | 79 | * @param dateTime 当前日期时间 |
| 80 | * @return 满减送活动列表 | 80 | * @return 满减送活动列表 |
| 81 | */ | 81 | */ |
| 82 | - List<RewardActivityDO> getRewardActivityByStatusAndDateTimeLt(Integer status, LocalDateTime dateTime); | 82 | + List<RewardActivityDO> getRewardActivityListByStatusAndDateTimeLt(Integer status, LocalDateTime dateTime); |
| 83 | 83 | ||
| 84 | } | 84 | } |
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/reward/RewardActivityServiceImpl.java
| @@ -165,7 +165,7 @@ public class RewardActivityServiceImpl implements RewardActivityService { | @@ -165,7 +165,7 @@ public class RewardActivityServiceImpl implements RewardActivityService { | ||
| 165 | } | 165 | } |
| 166 | 166 | ||
| 167 | @Override | 167 | @Override |
| 168 | - public List<RewardActivityDO> getRewardActivityByStatusAndDateTimeLt(Integer status, LocalDateTime dateTime) { | 168 | + public List<RewardActivityDO> getRewardActivityListByStatusAndDateTimeLt(Integer status, LocalDateTime dateTime) { |
| 169 | return rewardActivityMapper.selectListByStatusAndDateTimeLt(status, dateTime); | 169 | return rewardActivityMapper.selectListByStatusAndDateTimeLt(status, dateTime); |
| 170 | } | 170 | } |
| 171 | 171 |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderUpdateService.java
| @@ -186,15 +186,14 @@ public interface TradeOrderUpdateService { | @@ -186,15 +186,14 @@ public interface TradeOrderUpdateService { | ||
| 186 | */ | 186 | */ |
| 187 | void updateOrderCombinationInfo(Long orderId, Long activityId, Long combinationRecordId, Long headId); | 187 | void updateOrderCombinationInfo(Long orderId, Long activityId, Long combinationRecordId, Long headId); |
| 188 | 188 | ||
| 189 | - // TODO 芋艿:拼团取消,不调这个接口哈; | ||
| 190 | - | 189 | + // TODO @puhui999:不传递枚举哈。因为 rpc 不好支持。 |
| 191 | /** | 190 | /** |
| 192 | * 取消支付订单 | 191 | * 取消支付订单 |
| 193 | * | 192 | * |
| 194 | * @param userId 用户编号 | 193 | * @param userId 用户编号 |
| 195 | * @param orderId 订单编号 | 194 | * @param orderId 订单编号 |
| 196 | - * @param cancelTypeEnum 取消类型 | 195 | + * @param cancelType 取消类型 |
| 197 | */ | 196 | */ |
| 198 | - void cancelPaidOrder(Long userId, Long orderId, TradeOrderCancelTypeEnum cancelTypeEnum); | 197 | + void cancelPaidOrder(Long userId, Long orderId, TradeOrderCancelTypeEnum cancelType); |
| 199 | 198 | ||
| 200 | } | 199 | } |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderUpdateServiceImpl.java
| @@ -858,7 +858,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | @@ -858,7 +858,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | ||
| 858 | 858 | ||
| 859 | @Override | 859 | @Override |
| 860 | @Transactional(rollbackFor = Exception.class) | 860 | @Transactional(rollbackFor = Exception.class) |
| 861 | - public void cancelPaidOrder(Long userId, Long orderId, TradeOrderCancelTypeEnum cancelTypeEnum) { | 861 | + public void cancelPaidOrder(Long userId, Long orderId, TradeOrderCancelTypeEnum cancelType) { |
| 862 | + // TODO @puhui999:这里校验下 cancelType 只允许拼团关闭; | ||
| 862 | // 1.1 检验订单存在 | 863 | // 1.1 检验订单存在 |
| 863 | TradeOrderDO order = tradeOrderMapper.selectOrderByIdAndUserId(orderId, userId); | 864 | TradeOrderDO order = tradeOrderMapper.selectOrderByIdAndUserId(orderId, userId); |
| 864 | if (order == null) { | 865 | if (order == null) { |
| @@ -875,13 +876,13 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | @@ -875,13 +876,13 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | ||
| 875 | } | 876 | } |
| 876 | 877 | ||
| 877 | // 2.1 取消订单 | 878 | // 2.1 取消订单 |
| 878 | - cancelOrder0(order, cancelTypeEnum); | 879 | + cancelOrder0(order, cancelType); |
| 879 | // 2.2 创建退款单 | 880 | // 2.2 创建退款单 |
| 880 | payRefundApi.createRefund(new PayRefundCreateReqDTO() | 881 | payRefundApi.createRefund(new PayRefundCreateReqDTO() |
| 881 | .setAppKey(tradeOrderProperties.getPayAppKey()).setUserIp(getClientIP()) // 支付应用 | 882 | .setAppKey(tradeOrderProperties.getPayAppKey()).setUserIp(getClientIP()) // 支付应用 |
| 882 | .setMerchantOrderId(String.valueOf(order.getId())) // 支付单号 | 883 | .setMerchantOrderId(String.valueOf(order.getId())) // 支付单号 |
| 883 | .setMerchantRefundId(String.valueOf(order.getId())) | 884 | .setMerchantRefundId(String.valueOf(order.getId())) |
| 884 | - .setReason(cancelTypeEnum.getName()).setPrice(order.getPayPrice()));// 价格信息 | 885 | + .setReason(cancelType.getName()).setPrice(order.getPayPrice()));// 价格信息 |
| 885 | } | 886 | } |
| 886 | 887 | ||
| 887 | /** | 888 | /** |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradeRewardActivityPriceCalculator.java
| @@ -52,7 +52,7 @@ public class TradeRewardActivityPriceCalculator implements TradePriceCalculator | @@ -52,7 +52,7 @@ public class TradeRewardActivityPriceCalculator implements TradePriceCalculator | ||
| 52 | private void calculate(TradePriceCalculateReqBO param, TradePriceCalculateRespBO result, | 52 | private void calculate(TradePriceCalculateReqBO param, TradePriceCalculateRespBO result, |
| 53 | RewardActivityMatchRespDTO rewardActivity) { | 53 | RewardActivityMatchRespDTO rewardActivity) { |
| 54 | // 1.1 获得满减送的订单项(商品)列表 | 54 | // 1.1 获得满减送的订单项(商品)列表 |
| 55 | - List<TradePriceCalculateRespBO.OrderItem> orderItems = filterMatchCouponOrderItems(result, rewardActivity); | 55 | + List<TradePriceCalculateRespBO.OrderItem> orderItems = filterMatchActivityOrderItems(result, rewardActivity); |
| 56 | if (CollUtil.isEmpty(orderItems)) { | 56 | if (CollUtil.isEmpty(orderItems)) { |
| 57 | return; | 57 | return; |
| 58 | } | 58 | } |
| @@ -93,8 +93,9 @@ public class TradeRewardActivityPriceCalculator implements TradePriceCalculator | @@ -93,8 +93,9 @@ public class TradeRewardActivityPriceCalculator implements TradePriceCalculator | ||
| 93 | * @param rewardActivity 满减送活动 | 93 | * @param rewardActivity 满减送活动 |
| 94 | * @return 订单项(商品)列表 | 94 | * @return 订单项(商品)列表 |
| 95 | */ | 95 | */ |
| 96 | - private List<TradePriceCalculateRespBO.OrderItem> filterMatchCouponOrderItems(TradePriceCalculateRespBO result, | ||
| 97 | - RewardActivityMatchRespDTO rewardActivity) { | 96 | + private List<TradePriceCalculateRespBO.OrderItem> filterMatchActivityOrderItems(TradePriceCalculateRespBO result, |
| 97 | + RewardActivityMatchRespDTO rewardActivity) { | ||
| 98 | + // TODO @puhui999:是不是得根据类型过滤哈 | ||
| 98 | return filterList(result.getItems(), | 99 | return filterList(result.getItems(), |
| 99 | orderItem -> CollUtil.contains(rewardActivity.getProductScopeValues(), orderItem.getSpuId())); | 100 | orderItem -> CollUtil.contains(rewardActivity.getProductScopeValues(), orderItem.getSpuId())); |
| 100 | } | 101 | } |