Commit 00f89350e6dcce9f8df190a484064dddc7c108a9
1 parent
4fc10eff
【功能优化】商城:调整满减送的数据返回
Showing
2 changed files
with
40 additions
and
17 deletions
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 | } | ... | ... |