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 import java.io.Serializable;
7 7 import java.time.LocalDateTime;
8 8 import java.util.List;
  9 +import java.util.Map;
9 10  
10 11 @Schema(description = "用户 App - 商品结算信息 Response VO")
11 12 @Data
... ... @@ -20,18 +21,6 @@ public class AppTradeProductSettlementRespVO {
20 21 @Schema(description = "满减送活动信息", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
21 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 24 @Schema(description = "SKU 价格信息")
36 25 @Data
37 26 public static class Sku implements Serializable {
... ... @@ -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 1 package cn.iocoder.yudao.module.trade.service.price;
2 2  
3 3 import cn.hutool.core.collection.CollUtil;
  4 +import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
4 5 import cn.iocoder.yudao.module.member.api.level.dto.MemberLevelRespDTO;
5 6 import cn.iocoder.yudao.module.product.api.sku.ProductSkuApi;
6 7 import cn.iocoder.yudao.module.product.api.sku.dto.ProductSkuRespDTO;
... ... @@ -145,11 +146,8 @@ public class TradePriceServiceImpl implements TradePriceService {
145 146 spuVO.setSkus(skuVOList);
146 147 // 2.2 满减送活动
147 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 151 return spuVO;
154 152 });
155 153 }
... ...