Commit b4587fd79e5f58cfe52544c87f4146d9c2fdb235

Authored by YunaiV
1 parent 53e789df

product:订单表,增加 vip 优惠字段

Showing 17 changed files with 103 additions and 33 deletions
yudao-module-mall/yudao-module-product-biz/pom.xml
... ... @@ -23,12 +23,6 @@
23 23 <artifactId>yudao-module-product-api</artifactId>
24 24 <version>${revision}</version>
25 25 </dependency>
26   - <!-- TODO 芋艿:看看~~~ -->
27   - <dependency>
28   - <groupId>cn.iocoder.boot</groupId>
29   - <artifactId>yudao-module-trade-api</artifactId>
30   - <version>${revision}</version>
31   - </dependency>
32 26 <dependency>
33 27 <groupId>cn.iocoder.boot</groupId>
34 28 <artifactId>yudao-module-member-api</artifactId>
... ...
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/api/property/ProductPropertyValueApiImpl.java
1 1 package cn.iocoder.yudao.module.product.api.property;
2 2  
3 3 import cn.iocoder.yudao.module.product.api.property.dto.ProductPropertyValueDetailRespDTO;
4   -import cn.iocoder.yudao.module.product.convert.propertyvalue.ProductPropertyValueConvert;
  4 +import cn.iocoder.yudao.module.product.convert.property.ProductPropertyValueConvert;
5 5 import cn.iocoder.yudao.module.product.service.property.ProductPropertyValueService;
6 6 import org.springframework.stereotype.Service;
7 7 import org.springframework.validation.annotation.Validated;
... ...
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/admin/property/ProductPropertyValueController.java
1 1 package cn.iocoder.yudao.module.product.controller.admin.property;
2 2  
3   -import cn.hutool.core.collection.CollectionUtil;
4   -import cn.hutool.crypto.symmetric.AES;
5 3 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
6 4 import cn.iocoder.yudao.framework.common.pojo.PageResult;
7 5 import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueCreateReqVO;
8 6 import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValuePageReqVO;
9 7 import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueRespVO;
10 8 import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueUpdateReqVO;
11   -import cn.iocoder.yudao.module.product.convert.propertyvalue.ProductPropertyValueConvert;
  9 +import cn.iocoder.yudao.module.product.convert.property.ProductPropertyValueConvert;
12 10 import cn.iocoder.yudao.module.product.service.property.ProductPropertyValueService;
13 11 import io.swagger.v3.oas.annotations.Operation;
14 12 import io.swagger.v3.oas.annotations.Parameter;
... ... @@ -20,9 +18,6 @@ import org.springframework.web.bind.annotation.*;
20 18 import javax.annotation.Resource;
21 19 import javax.validation.Valid;
22 20  
23   -import java.util.Arrays;
24   -import java.util.List;
25   -
26 21 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
27 22  
28 23 @Tag(name = "管理后台 - 商品属性值")
... ...
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/controller/app/spu/AppProductSpuController.java
1 1 package cn.iocoder.yudao.module.product.controller.app.spu;
2 2  
  3 +import cn.hutool.core.collection.CollUtil;
3 4 import cn.iocoder.yudao.framework.common.pojo.CommonResult;
4 5 import cn.iocoder.yudao.framework.common.pojo.PageResult;
  6 +import cn.iocoder.yudao.module.member.api.level.MemberLevelApi;
  7 +import cn.iocoder.yudao.module.member.api.level.dto.MemberLevelRespDTO;
  8 +import cn.iocoder.yudao.module.member.api.user.MemberUserApi;
  9 +import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO;
5 10 import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppProductSpuDetailRespVO;
6   -import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppProductSpuPageRespVO;
7 11 import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppProductSpuPageReqVO;
  12 +import cn.iocoder.yudao.module.product.controller.app.spu.vo.AppProductSpuPageRespVO;
8 13 import cn.iocoder.yudao.module.product.convert.spu.ProductSpuConvert;
9 14 import cn.iocoder.yudao.module.product.dal.dataobject.sku.ProductSkuDO;
10 15 import cn.iocoder.yudao.module.product.dal.dataobject.spu.ProductSpuDO;
... ... @@ -23,10 +28,12 @@ import org.springframework.web.bind.annotation.RestController;
23 28  
24 29 import javax.annotation.Resource;
25 30 import javax.validation.Valid;
  31 +import java.util.Collections;
26 32 import java.util.List;
27 33  
28 34 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
29 35 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
  36 +import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
30 37 import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.SPU_NOT_ENABLE;
31 38 import static cn.iocoder.yudao.module.product.enums.ErrorCodeConstants.SPU_NOT_EXISTS;
32 39  
... ... @@ -41,6 +48,11 @@ public class AppProductSpuController {
41 48 @Resource
42 49 private ProductSkuService productSkuService;
43 50  
  51 + @Resource
  52 + private MemberLevelApi memberLevelApi;
  53 + @Resource
  54 + private MemberUserApi memberUserApi;
  55 +
44 56 @GetMapping("/list")
45 57 @Operation(summary = "获得商品 SPU 列表")
46 58 @Parameters({
... ... @@ -51,14 +63,32 @@ public class AppProductSpuController {
51 63 @RequestParam("recommendType") String recommendType,
52 64 @RequestParam(value = "count", defaultValue = "10") Integer count) {
53 65 List<ProductSpuDO> list = productSpuService.getSpuList(recommendType, count);
54   - return success(ProductSpuConvert.INSTANCE.convertListForGetSpuList(list));
  66 + if (CollUtil.isEmpty(list)) {
  67 + return success(Collections.emptyList());
  68 + }
  69 +
  70 + // 拼接返回
  71 + List<AppProductSpuPageRespVO> voList = ProductSpuConvert.INSTANCE.convertListForGetSpuList(list);
  72 + // 处理 vip 价格
  73 + MemberLevelRespDTO memberLevel = getMemberLevel();
  74 + voList.forEach(vo -> vo.setVipPrice(calculateVipPrice(vo.getPrice(), memberLevel)));
  75 + return success(voList);
55 76 }
56 77  
57 78 @GetMapping("/page")
58 79 @Operation(summary = "获得商品 SPU 分页")
59 80 public CommonResult<PageResult<AppProductSpuPageRespVO>> getSpuPage(@Valid AppProductSpuPageReqVO pageVO) {
60 81 PageResult<ProductSpuDO> pageResult = productSpuService.getSpuPage(pageVO);
61   - return success(ProductSpuConvert.INSTANCE.convertPageForGetSpuPage(pageResult));
  82 + if (CollUtil.isEmpty(pageResult.getList())) {
  83 + return success(PageResult.empty(pageResult.getTotal()));
  84 + }
  85 +
  86 + // 拼接返回
  87 + PageResult<AppProductSpuPageRespVO> voPageResult = ProductSpuConvert.INSTANCE.convertPageForGetSpuPage(pageResult);
  88 + // 处理 vip 价格
  89 + MemberLevelRespDTO memberLevel = getMemberLevel();
  90 + voPageResult.getList().forEach(vo -> vo.setVipPrice(calculateVipPrice(vo.getPrice(), memberLevel)));
  91 + return success(voPageResult);
62 92 }
63 93  
64 94 @GetMapping("/get-detail")
... ... @@ -74,10 +104,40 @@ public class AppProductSpuController {
74 104 throw exception(SPU_NOT_ENABLE);
75 105 }
76 106  
77   - // 查询商品 SKU
  107 + // 拼接返回
78 108 List<ProductSkuDO> skus = productSkuService.getSkuListBySpuId(spu.getId());
79   - // 拼接
80   - return success(ProductSpuConvert.INSTANCE.convertForGetSpuDetail(spu, skus));
  109 + AppProductSpuDetailRespVO detailVO = ProductSpuConvert.INSTANCE.convertForGetSpuDetail(spu, skus);
  110 + // 处理 vip 价格
  111 + MemberLevelRespDTO memberLevel = getMemberLevel();
  112 + detailVO.setVipPrice(calculateVipPrice(detailVO.getPrice(), memberLevel));
  113 + return success(detailVO);
  114 + }
  115 +
  116 + private MemberLevelRespDTO getMemberLevel() {
  117 + Long userId = getLoginUserId();
  118 + if (userId == null) {
  119 + return null;
  120 + }
  121 + MemberUserRespDTO user = memberUserApi.getUser(userId);
  122 + if (user.getLevelId() == null || user.getLevelId() <= 0) {
  123 + return null;
  124 + }
  125 + return memberLevelApi.getMemberLevel(user.getLevelId());
  126 + }
  127 +
  128 + /**
  129 + * 计算会员 VIP 优惠价格
  130 + *
  131 + * @param price 原价
  132 + * @param memberLevel 会员等级
  133 + * @return 优惠价格
  134 + */
  135 + public Integer calculateVipPrice(Integer price, MemberLevelRespDTO memberLevel) {
  136 + if (memberLevel == null || memberLevel.getDiscountPercent() == null) {
  137 + return 0;
  138 + }
  139 + Integer newPrice = price * memberLevel.getDiscountPercent() / 100;
  140 + return price - newPrice;
81 141 }
82 142  
83 143 }
... ...
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/propertyvalue/ProductPropertyValueConvert.java renamed to yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/property/ProductPropertyValueConvert.java
1   -package cn.iocoder.yudao.module.product.convert.propertyvalue;
  1 +package cn.iocoder.yudao.module.product.convert.property;
2 2  
3 3 import cn.iocoder.yudao.framework.common.pojo.PageResult;
4 4 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
... ...
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/convert/spu/ProductSpuConvert.java
... ... @@ -79,8 +79,6 @@ public interface ProductSpuConvert {
79 79 ProductSpuDO spu = list.get(i);
80 80 AppProductSpuPageRespVO spuVO = voList.get(i);
81 81 spuVO.setUnitName(DictFrameworkUtils.getDictDataLabel(DictTypeConstants.PRODUCT_UNIT, spu.getUnit()));
82   - // 计算 vip 价格 TODO 芋艿:临时的逻辑,等 vip 支持后
83   - spuVO.setVipPrice((int) (spuVO.getPrice() * 0.9));
84 82 }
85 83 return voList;
86 84 }
... ... @@ -95,11 +93,6 @@ public interface ProductSpuConvert {
95 93 .setUnitName(DictFrameworkUtils.getDictDataLabel(DictTypeConstants.PRODUCT_UNIT, spu.getUnit()));
96 94 // 处理 SKU
97 95 spuVO.setSkus(convertListForGetSpuDetail(skus));
98   - // 计算 vip 价格 TODO 芋艿:临时的逻辑,等 vip 支持后
99   - if (true) {
100   - spuVO.setVipPrice((int) (spuVO.getPrice() * 0.9));
101   - spuVO.getSkus().forEach(sku -> sku.setVipPrice((int) (sku.getPrice() * 0.9)));
102   - }
103 96 return spuVO;
104 97 }
105 98  
... ...
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/package-info.java
1 1 /**
2   - * trade 模块,主要实现交易相关功能
  2 + * product 模块,主要实现交易相关功能
3 3 * 例如:订单、退款、购物车等功能。
4 4 *
5 5 * 1. Controller URL:以 /product/ 开头,避免和其它 Module 冲突
... ...
yudao-module-mall/yudao-module-product-biz/src/main/java/cn/iocoder/yudao/module/product/service/property/ProductPropertyValueServiceImpl.java
... ... @@ -5,7 +5,7 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
5 5 import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueCreateReqVO;
6 6 import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValuePageReqVO;
7 7 import cn.iocoder.yudao.module.product.controller.admin.property.vo.value.ProductPropertyValueUpdateReqVO;
8   -import cn.iocoder.yudao.module.product.convert.propertyvalue.ProductPropertyValueConvert;
  8 +import cn.iocoder.yudao.module.product.convert.property.ProductPropertyValueConvert;
9 9 import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyDO;
10 10 import cn.iocoder.yudao.module.product.dal.dataobject.property.ProductPropertyValueDO;
11 11 import cn.iocoder.yudao.module.product.dal.mysql.property.ProductPropertyValueMapper;
... ...
yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/ErrorCodeConstants.java
... ... @@ -53,9 +53,7 @@ public interface ErrorCodeConstants {
53 53  
54 54 // ========== Price 相关 1011003000 ============
55 55 ErrorCode PRICE_CALCULATE_PAY_PRICE_ILLEGAL = new ErrorCode(1011003000, "支付价格计算异常,原因:价格小于等于 0");
56   - ErrorCode PRICE_CALCULATE_DELIVERY_PRICE_USER_ADDRESS_IS_EMPTY = new ErrorCode(1011003001, "计算快递运费异常,收件人地址编号为空");
57 56 ErrorCode PRICE_CALCULATE_DELIVERY_PRICE_TEMPLATE_NOT_FOUND = new ErrorCode(1011003002, "计算快递运费异常,找不到对应的运费模板");
58   - ErrorCode PRICE_CALCULATE_DELIVERY_PRICE_PICK_UP_STORE_IS_EMPTY = new ErrorCode(1011003003, "计算快递运费异常,自提点为空");
59 57 ErrorCode PRICE_CALCULATE_COUPON_NOT_MATCH_NORMAL_ORDER = new ErrorCode(1011003004, "参与秒杀、拼团、砍价的营销商品,无法使用优惠劵");
60 58  
61 59 // ========== 物流 Express 模块 1011004000 ==========
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderSettlementRespVO.java
... ... @@ -82,6 +82,9 @@ public class AppTradeOrderSettlementRespVO {
82 82 @Schema(description = "积分抵扣的金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "50")
83 83 private Integer pointPrice;
84 84  
  85 + @Schema(description = "VIP 减免金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "30")
  86 + private Integer vipPrice;
  87 +
85 88 @Schema(description = "实际支付金额(总),单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "450")
86 89 private Integer payPrice;
87 90  
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradeDeliveryPriceCalculator.java
... ... @@ -64,7 +64,8 @@ public class TradeDeliveryPriceCalculator implements TradePriceCalculator {
64 64  
65 65 private void calculateByPickUp(TradePriceCalculateReqBO param) {
66 66 if (param.getPickUpStoreId() == null) {
67   - throw exception(PRICE_CALCULATE_DELIVERY_PRICE_PICK_UP_STORE_IS_EMPTY);
  67 + // 价格计算时,如果为空就不算~最终下单,会校验该字段不允许空
  68 + return;
68 69 }
69 70 DeliveryPickUpStoreDO pickUpStore = deliveryPickUpStoreService.getDeliveryPickUpStore(param.getPickUpStoreId());
70 71 if (pickUpStore == null || CommonStatusEnum.DISABLE.getStatus().equals(pickUpStore.getStatus())) {
... ... @@ -77,7 +78,8 @@ public class TradeDeliveryPriceCalculator implements TradePriceCalculator {
77 78 private void calculateExpress(TradePriceCalculateReqBO param, TradePriceCalculateRespBO result) {
78 79 // 0. 得到收件地址区域
79 80 if (param.getAddressId() == null) {
80   - throw exception(PRICE_CALCULATE_DELIVERY_PRICE_USER_ADDRESS_IS_EMPTY);
  81 + // 价格计算时,如果为空就不算~最终下单,会校验该字段不允许空
  82 + return;
81 83 }
82 84 AddressRespDTO address = addressApi.getAddress(param.getAddressId(), param.getUserId());
83 85 Assert.notNull(address, "收件人({})的地址,不能为空", param.getUserId());
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradeDiscountActivityPriceCalculator.java
1 1 package cn.iocoder.yudao.module.trade.service.price.calculator;
2 2  
3 3 import cn.hutool.core.collection.CollUtil;
  4 +import cn.hutool.core.util.ObjectUtil;
4 5 import cn.hutool.core.util.StrUtil;
5 6 import cn.iocoder.yudao.module.promotion.api.discount.DiscountActivityApi;
6 7 import cn.iocoder.yudao.module.promotion.api.discount.dto.DiscountProductRespDTO;
7 8 import cn.iocoder.yudao.module.promotion.enums.common.PromotionDiscountTypeEnum;
8 9 import cn.iocoder.yudao.module.promotion.enums.common.PromotionTypeEnum;
  10 +import cn.iocoder.yudao.module.trade.enums.order.TradeOrderTypeEnum;
9 11 import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateReqBO;
10 12 import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateRespBO;
11 13 import org.springframework.core.annotation.Order;
... ... @@ -33,6 +35,10 @@ public class TradeDiscountActivityPriceCalculator implements TradePriceCalculato
33 35  
34 36 @Override
35 37 public void calculate(TradePriceCalculateReqBO param, TradePriceCalculateRespBO result) {
  38 + // 0. 只有【普通】订单,才计算该优惠
  39 + if (ObjectUtil.notEqual(result.getType(), TradeOrderTypeEnum.NORMAL.getType())) {
  40 + return;
  41 + }
36 42 // 获得 SKU 对应的限时折扣活动
37 43 List<DiscountProductRespDTO> discountProducts = discountActivityApi.getMatchDiscountProductList(
38 44 convertSet(result.getItems(), TradePriceCalculateRespBO.OrderItem::getSkuId));
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradeMemberLevelPriceCalculator.java
1 1 package cn.iocoder.yudao.module.trade.service.price.calculator;
2 2  
  3 +import cn.hutool.core.util.ObjectUtil;
3 4 import cn.iocoder.yudao.module.member.api.level.MemberLevelApi;
4 5 import cn.iocoder.yudao.module.member.api.level.dto.MemberLevelRespDTO;
5 6 import cn.iocoder.yudao.module.member.api.user.MemberUserApi;
6 7 import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO;
7 8 import cn.iocoder.yudao.module.promotion.enums.common.PromotionTypeEnum;
  9 +import cn.iocoder.yudao.module.trade.enums.order.TradeOrderTypeEnum;
8 10 import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateReqBO;
9 11 import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateRespBO;
10 12 import org.springframework.core.annotation.Order;
... ... @@ -30,6 +32,10 @@ public class TradeMemberLevelPriceCalculator implements TradePriceCalculator {
30 32  
31 33 @Override
32 34 public void calculate(TradePriceCalculateReqBO param, TradePriceCalculateRespBO result) {
  35 + // 0. 只有【普通】订单,才计算该优惠
  36 + if (ObjectUtil.notEqual(result.getType(), TradeOrderTypeEnum.NORMAL.getType())) {
  37 + return;
  38 + }
33 39 // 1. 获得用户的会员等级
34 40 MemberUserRespDTO user = memberUserApi.getUser(param.getUserId());
35 41 if (user.getLevelId() == null || user.getLevelId() <= 0) {
... ...
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradeRewardActivityPriceCalculator.java
1 1 package cn.iocoder.yudao.module.trade.service.price.calculator;
2 2  
3 3 import cn.hutool.core.collection.CollUtil;
  4 +import cn.hutool.core.util.ObjectUtil;
4 5 import cn.hutool.core.util.StrUtil;
5 6 import cn.iocoder.yudao.module.promotion.api.reward.RewardActivityApi;
6 7 import cn.iocoder.yudao.module.promotion.api.reward.dto.RewardActivityMatchRespDTO;
7 8 import cn.iocoder.yudao.module.promotion.enums.common.PromotionConditionTypeEnum;
8 9 import cn.iocoder.yudao.module.promotion.enums.common.PromotionTypeEnum;
  10 +import cn.iocoder.yudao.module.trade.enums.order.TradeOrderTypeEnum;
9 11 import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateReqBO;
10 12 import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateRespBO;
11 13 import org.springframework.core.annotation.Order;
... ... @@ -32,6 +34,10 @@ public class TradeRewardActivityPriceCalculator implements TradePriceCalculator
32 34  
33 35 @Override
34 36 public void calculate(TradePriceCalculateReqBO param, TradePriceCalculateRespBO result) {
  37 + // 0. 只有【普通】订单,才计算该优惠
  38 + if (ObjectUtil.notEqual(result.getType(), TradeOrderTypeEnum.NORMAL.getType())) {
  39 + return;
  40 + }
35 41 // 获得 SKU 对应的满减送活动
36 42 List<RewardActivityMatchRespDTO> rewardActivities = rewardActivityApi.getMatchRewardActivityList(
37 43 convertSet(result.getItems(), TradePriceCalculateRespBO.OrderItem::getSpuId));
... ...
yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradeDiscountActivityPriceCalculatorTest.java
... ... @@ -5,6 +5,7 @@ import cn.iocoder.yudao.module.promotion.api.discount.DiscountActivityApi;
5 5 import cn.iocoder.yudao.module.promotion.api.discount.dto.DiscountProductRespDTO;
6 6 import cn.iocoder.yudao.module.promotion.enums.common.PromotionDiscountTypeEnum;
7 7 import cn.iocoder.yudao.module.promotion.enums.common.PromotionTypeEnum;
  8 +import cn.iocoder.yudao.module.trade.enums.order.TradeOrderTypeEnum;
8 9 import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateReqBO;
9 10 import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateRespBO;
10 11 import org.junit.jupiter.api.Test;
... ... @@ -42,6 +43,7 @@ public class TradeDiscountActivityPriceCalculatorTest extends BaseMockitoUnitTes
42 43 new TradePriceCalculateReqBO.Item().setSkuId(20L).setCount(3).setSelected(false) // 匹配活动,但未选中
43 44 ));
44 45 TradePriceCalculateRespBO result = new TradePriceCalculateRespBO()
  46 + .setType(TradeOrderTypeEnum.NORMAL.getType())
45 47 .setPrice(new TradePriceCalculateRespBO.Price())
46 48 .setPromotions(new ArrayList<>())
47 49 .setItems(asList(
... ...
yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradeMemberLevelPriceCalculatorTest.java
... ... @@ -6,6 +6,7 @@ import cn.iocoder.yudao.module.member.api.level.dto.MemberLevelRespDTO;
6 6 import cn.iocoder.yudao.module.member.api.user.MemberUserApi;
7 7 import cn.iocoder.yudao.module.member.api.user.dto.MemberUserRespDTO;
8 8 import cn.iocoder.yudao.module.promotion.enums.common.PromotionTypeEnum;
  9 +import cn.iocoder.yudao.module.trade.enums.order.TradeOrderTypeEnum;
9 10 import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateReqBO;
10 11 import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateRespBO;
11 12 import org.junit.jupiter.api.Test;
... ... @@ -44,6 +45,7 @@ public class TradeMemberLevelPriceCalculatorTest extends BaseMockitoUnitTest {
44 45 new TradePriceCalculateReqBO.Item().setSkuId(20L).setCount(3).setSelected(false) // 匹配活动,但未选中
45 46 ));
46 47 TradePriceCalculateRespBO result = new TradePriceCalculateRespBO()
  48 + .setType(TradeOrderTypeEnum.NORMAL.getType())
47 49 .setPrice(new TradePriceCalculateRespBO.Price())
48 50 .setPromotions(new ArrayList<>())
49 51 .setItems(asList(
... ...
yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradeRewardActivityPriceCalculatorTest.java
... ... @@ -5,6 +5,7 @@ import cn.iocoder.yudao.module.promotion.api.reward.RewardActivityApi;
5 5 import cn.iocoder.yudao.module.promotion.api.reward.dto.RewardActivityMatchRespDTO;
6 6 import cn.iocoder.yudao.module.promotion.enums.common.PromotionConditionTypeEnum;
7 7 import cn.iocoder.yudao.module.promotion.enums.common.PromotionTypeEnum;
  8 +import cn.iocoder.yudao.module.trade.enums.order.TradeOrderTypeEnum;
8 9 import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateReqBO;
9 10 import cn.iocoder.yudao.module.trade.service.price.bo.TradePriceCalculateRespBO;
10 11 import org.junit.jupiter.api.Test;
... ... @@ -44,6 +45,7 @@ public class TradeRewardActivityPriceCalculatorTest extends BaseMockitoUnitTest
44 45 new TradePriceCalculateReqBO.Item().setSkuId(30L).setCount(4).setSelected(true) // 匹配活动 2
45 46 ));
46 47 TradePriceCalculateRespBO result = new TradePriceCalculateRespBO()
  48 + .setType(TradeOrderTypeEnum.NORMAL.getType())
47 49 .setPrice(new TradePriceCalculateRespBO.Price())
48 50 .setPromotions(new ArrayList<>())
49 51 .setItems(asList(
... ... @@ -157,6 +159,7 @@ public class TradeRewardActivityPriceCalculatorTest extends BaseMockitoUnitTest
157 159 new TradePriceCalculateReqBO.Item().setSkuId(30L).setCount(4).setSelected(true)
158 160 ));
159 161 TradePriceCalculateRespBO result = new TradePriceCalculateRespBO()
  162 + .setType(TradeOrderTypeEnum.NORMAL.getType())
160 163 .setPrice(new TradePriceCalculateRespBO.Price())
161 164 .setPromotions(new ArrayList<>())
162 165 .setItems(asList(
... ...