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 +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 | } |