Commit 00f89350e6dcce9f8df190a484064dddc7c108a9

Authored by YunaiV
1 parent 4fc10eff

【功能优化】商城:调整满减送的数据返回

yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeProductSettlementRespVO.java
@@ -6,6 +6,7 @@ import lombok.Data; @@ -6,6 +6,7 @@ import lombok.Data;
6 import java.io.Serializable; 6 import java.io.Serializable;
7 import java.time.LocalDateTime; 7 import java.time.LocalDateTime;
8 import java.util.List; 8 import java.util.List;
  9 +import java.util.Map;
9 10
10 @Schema(description = "用户 App - 商品结算信息 Response VO") 11 @Schema(description = "用户 App - 商品结算信息 Response VO")
11 @Data 12 @Data
@@ -20,18 +21,6 @@ public class AppTradeProductSettlementRespVO { @@ -20,18 +21,6 @@ public class AppTradeProductSettlementRespVO {
20 @Schema(description = "满减送活动信息", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") 21 @Schema(description = "满减送活动信息", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
21 private RewardActivity rewardActivity; 22 private RewardActivity rewardActivity;
22 23
23 - @Schema(description = "满减送活动信息")  
24 - @Data  
25 - public static class RewardActivity {  
26 -  
27 - @Schema(description = "满减活动编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")  
28 - private Long id;  
29 -  
30 - @Schema(description = "优惠规则描述", requiredMode = Schema.RequiredMode.REQUIRED, example = "满 0.5 元减 0.3")  
31 - private List<String> ruleDescriptions;  
32 -  
33 - }  
34 -  
35 @Schema(description = "SKU 价格信息") 24 @Schema(description = "SKU 价格信息")
36 @Data 25 @Data
37 public static class Sku implements Serializable { 26 public static class Sku implements Serializable {
@@ -53,4 +42,40 @@ public class AppTradeProductSettlementRespVO { @@ -53,4 +42,40 @@ public class AppTradeProductSettlementRespVO {
53 42
54 } 43 }
55 44
  45 + @Schema(description = "满减送活动信息")
  46 + @Data
  47 + public static class RewardActivity {
  48 +
  49 + @Schema(description = "满减活动编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
  50 + private Long id;
  51 +
  52 + @Schema(description = "条件类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
  53 + private Integer conditionType;
  54 +
  55 + @Schema(description = "优惠规则的数组", requiredMode = Schema.RequiredMode.REQUIRED)
  56 + private List<RewardActivityRule> rules;
  57 +
  58 + }
  59 +
  60 + @Schema(description = "优惠规则")
  61 + @Data
  62 + public static class RewardActivityRule {
  63 +
  64 + @Schema(description = "优惠门槛", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") // 1. 满 N 元,单位:分; 2. 满 N 件
  65 + private Integer limit;
  66 +
  67 + @Schema(description = "优惠价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
  68 + private Integer discountPrice;
  69 +
  70 + @Schema(description = "是否包邮", requiredMode = Schema.RequiredMode.REQUIRED, example = "true")
  71 + private Boolean freeDelivery;
  72 +
  73 + @Schema(description = "赠送的积分", requiredMode = Schema.RequiredMode.REQUIRED, example = "100")
  74 + private Integer point;
  75 +
  76 + @Schema(description = "赠送的优惠劵编号的数组")
  77 + private Map<Long, Integer> giveCouponTemplateCounts;
  78 +
  79 + }
  80 +
56 } 81 }
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/TradePriceServiceImpl.java
1 package cn.iocoder.yudao.module.trade.service.price; 1 package cn.iocoder.yudao.module.trade.service.price;
2 2
3 import cn.hutool.core.collection.CollUtil; 3 import cn.hutool.core.collection.CollUtil;
  4 +import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
4 import cn.iocoder.yudao.module.member.api.level.dto.MemberLevelRespDTO; 5 import cn.iocoder.yudao.module.member.api.level.dto.MemberLevelRespDTO;
5 import cn.iocoder.yudao.module.product.api.sku.ProductSkuApi; 6 import cn.iocoder.yudao.module.product.api.sku.ProductSkuApi;
6 import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuRespDTO; 7 import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuRespDTO;
@@ -145,11 +146,8 @@ public class TradePriceServiceImpl implements TradePriceService { @@ -145,11 +146,8 @@ public class TradePriceServiceImpl implements TradePriceService {
145 spuVO.setSkus(skuVOList); 146 spuVO.setSkus(skuVOList);
146 // 2.2 满减送活动 147 // 2.2 满减送活动
147 RewardActivityMatchRespDTO rewardActivity = CollUtil.findOne(rewardActivityMap, 148 RewardActivityMatchRespDTO rewardActivity = CollUtil.findOne(rewardActivityMap,
148 - activity -> CollUtil.contains(activity.getProductScopeValues(), spuId));  
149 - if (rewardActivity != null) {  
150 - spuVO.setRewardActivity(new AppTradeProductSettlementRespVO.RewardActivity().setId(rewardActivity.getId())  
151 - .setRuleDescriptions(convertList(rewardActivity.getRules(), RewardActivityMatchRespDTO.Rule::getDescription)));  
152 - } 149 + activity -> CollUtil.contains(activity.getSpuIds(), spuId));
  150 + spuVO.setRewardActivity(BeanUtils.toBean(rewardActivity, AppTradeProductSettlementRespVO.RewardActivity.class));
153 return spuVO; 151 return spuVO;
154 }); 152 });
155 } 153 }