Commit 02fa6fc5c6187bc1c731e11f574675d7aac410fc

Authored by YunaiV
1 parent 0083d124

mall + trade:调整价格字段,更易懂

yudao-module-mall/yudao-module-promotion-api/src/main/java/cn/iocoder/yudao/module/promotion/api/price/dto/PriceCalculateRespDTO.java
@@ -38,6 +38,7 @@ public class PriceCalculateRespDTO { @@ -38,6 +38,7 @@ public class PriceCalculateRespDTO {
38 */ 38 */
39 private List<Promotion> promotions; 39 private List<Promotion> promotions;
40 40
  41 + // TODO @芋艿:需要改造下,主要是价格字段
41 /** 42 /**
42 * 订单 43 * 订单
43 */ 44 */
@@ -51,14 +52,7 @@ public class PriceCalculateRespDTO { @@ -51,14 +52,7 @@ public class PriceCalculateRespDTO {
51 * 52 *
52 * 对应 taobao 的 trade.total_fee 字段 53 * 对应 taobao 的 trade.total_fee 字段
53 */ 54 */
54 - private Integer originalPrice;  
55 - /**  
56 - * 订单原价(总),单位:分  
57 - *  
58 - * 基于 {@link OrderItem#getPayPrice()} 求和  
59 - * 和 {@link #originalPrice} 的差异:去除商品级优惠  
60 - */  
61 - private Integer orderPrice; 55 + private Integer totalPrice;
62 /** 56 /**
63 * 订单优惠(总),单位:分 57 * 订单优惠(总),单位:分
64 * 58 *
@@ -207,7 +201,7 @@ public class PriceCalculateRespDTO { @@ -207,7 +201,7 @@ public class PriceCalculateRespDTO {
207 /** 201 /**
208 * 计算时的原价(总),单位:分 202 * 计算时的原价(总),单位:分
209 */ 203 */
210 - private Integer originalPrice; 204 + private Integer totalPrice;
211 /** 205 /**
212 * 计算时的优惠(总),单位:分 206 * 计算时的优惠(总),单位:分
213 */ 207 */
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/convert/price/PriceConvert.java
@@ -22,7 +22,7 @@ public interface PriceConvert { @@ -22,7 +22,7 @@ public interface PriceConvert {
22 // 创建 PriceCalculateRespDTO 对象 22 // 创建 PriceCalculateRespDTO 对象
23 PriceCalculateRespDTO priceCalculate = new PriceCalculateRespDTO(); 23 PriceCalculateRespDTO priceCalculate = new PriceCalculateRespDTO();
24 // 创建它的 Order 属性 24 // 创建它的 Order 属性
25 - PriceCalculateRespDTO.Order order = new PriceCalculateRespDTO.Order().setOriginalPrice(0).setDiscountPrice(0) 25 + PriceCalculateRespDTO.Order order = new PriceCalculateRespDTO.Order().setTotalPrice(0).setDiscountPrice(0)
26 .setCouponPrice(0).setPointPrice(0).setDeliveryPrice(0).setPayPrice(0) 26 .setCouponPrice(0).setPointPrice(0).setDeliveryPrice(0).setPayPrice(0)
27 .setItems(new ArrayList<>()).setCouponId(calculateReqDTO.getCouponId()); 27 .setItems(new ArrayList<>()).setCouponId(calculateReqDTO.getCouponId());
28 priceCalculate.setOrder(order).setPromotions(new ArrayList<>()); 28 priceCalculate.setOrder(order).setPromotions(new ArrayList<>());
@@ -38,8 +38,8 @@ public interface PriceConvert { @@ -38,8 +38,8 @@ public interface PriceConvert {
38 orderItem.setPayPrice(orderItem.getOriginalPrice()).setOrderDividePrice(orderItem.getOriginalPrice()); 38 orderItem.setPayPrice(orderItem.getOriginalPrice()).setOrderDividePrice(orderItem.getOriginalPrice());
39 priceCalculate.getOrder().getItems().add(orderItem); 39 priceCalculate.getOrder().getItems().add(orderItem);
40 // 补充价格信息到 Order 中 40 // 补充价格信息到 Order 中
41 - order.setOriginalPrice(order.getOriginalPrice() + orderItem.getOriginalPrice())  
42 - .setOrderPrice(order.getOriginalPrice()).setPayPrice(order.getOriginalPrice()); 41 + order.setTotalPrice(order.getTotalPrice() + orderItem.getOriginalPrice())
  42 + .setPayPrice(order.getTotalPrice());
43 }); 43 });
44 return priceCalculate; 44 return priceCalculate;
45 } 45 }
yudao-module-mall/yudao-module-promotion-biz/src/main/java/cn/iocoder/yudao/module/promotion/service/price/PriceServiceImpl.java
@@ -406,7 +406,7 @@ public class PriceServiceImpl implements PriceService { @@ -406,7 +406,7 @@ public class PriceServiceImpl implements PriceService {
406 // 创建营销明细 406 // 创建营销明细
407 PriceCalculateRespDTO.Promotion promotion = new PriceCalculateRespDTO.Promotion() 407 PriceCalculateRespDTO.Promotion promotion = new PriceCalculateRespDTO.Promotion()
408 .setId(id).setName(name).setType(type).setLevel(level) 408 .setId(id).setName(name).setType(type).setLevel(level)
409 - .setOriginalPrice(promotionItem.getOriginalPrice()).setDiscountPrice(promotionItem.getDiscountPrice()) 409 + .setTotalPrice(promotionItem.getOriginalPrice()).setDiscountPrice(promotionItem.getDiscountPrice())
410 .setItems(singletonList(promotionItem)).setMeet(meet).setMeetTip(meetTip); 410 .setItems(singletonList(promotionItem)).setMeet(meet).setMeetTip(meetTip);
411 priceCalculate.getPromotions().add(promotion); 411 priceCalculate.getPromotions().add(promotion);
412 } 412 }
@@ -437,7 +437,7 @@ public class PriceServiceImpl implements PriceService { @@ -437,7 +437,7 @@ public class PriceServiceImpl implements PriceService {
437 // 创建营销明细 437 // 创建营销明细
438 PriceCalculateRespDTO.Promotion promotion = new PriceCalculateRespDTO.Promotion() 438 PriceCalculateRespDTO.Promotion promotion = new PriceCalculateRespDTO.Promotion()
439 .setId(id).setName(name).setType(type).setLevel(level) 439 .setId(id).setName(name).setType(type).setLevel(level)
440 - .setOriginalPrice(getSumValue(orderItems, PriceCalculateRespDTO.OrderItem::getOrderDividePrice, Integer::sum)) 440 + .setTotalPrice(getSumValue(orderItems, PriceCalculateRespDTO.OrderItem::getOrderDividePrice, Integer::sum))
441 .setDiscountPrice(getSumValue(discountPrices, value -> value, Integer::sum)) 441 .setDiscountPrice(getSumValue(discountPrices, value -> value, Integer::sum))
442 .setItems(promotionItems).setMeet(meet).setMeetTip(meetTip); 442 .setItems(promotionItems).setMeet(meet).setMeetTip(meetTip);
443 priceCalculate.getPromotions().add(promotion); 443 priceCalculate.getPromotions().add(promotion);
@@ -453,7 +453,7 @@ public class PriceServiceImpl implements PriceService { @@ -453,7 +453,7 @@ public class PriceServiceImpl implements PriceService {
453 Integer originalPrice = getSumValue(orderItems, PriceCalculateRespDTO.OrderItem::getOrderDividePrice, Integer::sum); 453 Integer originalPrice = getSumValue(orderItems, PriceCalculateRespDTO.OrderItem::getOrderDividePrice, Integer::sum);
454 PriceCalculateRespDTO.Promotion promotion = new PriceCalculateRespDTO.Promotion() 454 PriceCalculateRespDTO.Promotion promotion = new PriceCalculateRespDTO.Promotion()
455 .setId(id).setName(name).setType(type).setLevel(level) 455 .setId(id).setName(name).setType(type).setLevel(level)
456 - .setOriginalPrice(originalPrice).setDiscountPrice(0) 456 + .setTotalPrice(originalPrice).setDiscountPrice(0)
457 .setItems(promotionItems).setMeet(false).setMeetTip(meetTip); 457 .setItems(promotionItems).setMeet(false).setMeetTip(meetTip);
458 priceCalculate.getPromotions().add(promotion); 458 priceCalculate.getPromotions().add(promotion);
459 } 459 }
@@ -476,7 +476,6 @@ public class PriceServiceImpl implements PriceService { @@ -476,7 +476,6 @@ public class PriceServiceImpl implements PriceService {
476 // 设置 Order 相关相关字段 476 // 设置 Order 相关相关字段
477 PriceCalculateRespDTO.Order order = priceCalculate.getOrder(); 477 PriceCalculateRespDTO.Order order = priceCalculate.getOrder();
478 order.setPayPrice(order.getPayPrice() - diffPayPrice); 478 order.setPayPrice(order.getPayPrice() - diffPayPrice);
479 - order.setOrderPrice(order.getOrderPrice() - diffPayPrice);  
480 } 479 }
481 480
482 /** 481 /**
yudao-module-mall/yudao-module-promotion-biz/src/test/java/cn/iocoder/yudao/module/promotion/service/price/PriceServiceTest.java
@@ -70,8 +70,7 @@ public class PriceServiceTest extends BaseMockitoUnitTest { @@ -70,8 +70,7 @@ public class PriceServiceTest extends BaseMockitoUnitTest {
70 PriceCalculateRespDTO priceCalculate = priceService.calculatePrice(calculateReqDTO); 70 PriceCalculateRespDTO priceCalculate = priceService.calculatePrice(calculateReqDTO);
71 // 断言 Order 部分 71 // 断言 Order 部分
72 PriceCalculateRespDTO.Order order = priceCalculate.getOrder(); 72 PriceCalculateRespDTO.Order order = priceCalculate.getOrder();
73 - assertEquals(order.getOriginalPrice(), 200);  
74 - assertEquals(order.getOrderPrice(), 180); 73 + assertEquals(order.getTotalPrice(), 200);
75 assertEquals(order.getDiscountPrice(), 0); 74 assertEquals(order.getDiscountPrice(), 0);
76 assertEquals(order.getPointPrice(), 0); 75 assertEquals(order.getPointPrice(), 0);
77 assertEquals(order.getDeliveryPrice(), 0); 76 assertEquals(order.getDeliveryPrice(), 0);
@@ -95,7 +94,7 @@ public class PriceServiceTest extends BaseMockitoUnitTest { @@ -95,7 +94,7 @@ public class PriceServiceTest extends BaseMockitoUnitTest {
95 assertEquals(promotion.getName(), "会员折扣"); 94 assertEquals(promotion.getName(), "会员折扣");
96 assertEquals(promotion.getType(), PromotionTypeEnum.MEMBER.getType()); 95 assertEquals(promotion.getType(), PromotionTypeEnum.MEMBER.getType());
97 assertEquals(promotion.getLevel(), PromotionLevelEnum.SKU.getLevel()); 96 assertEquals(promotion.getLevel(), PromotionLevelEnum.SKU.getLevel());
98 - assertEquals(promotion.getOriginalPrice(), 200); 97 + assertEquals(promotion.getTotalPrice(), 200);
99 assertEquals(promotion.getDiscountPrice(), 20); 98 assertEquals(promotion.getDiscountPrice(), 20);
100 assertTrue(promotion.getMeet()); 99 assertTrue(promotion.getMeet());
101 assertEquals(promotion.getMeetTip(), "会员折扣:省 0.20 元"); 100 assertEquals(promotion.getMeetTip(), "会员折扣:省 0.20 元");
@@ -133,8 +132,7 @@ public class PriceServiceTest extends BaseMockitoUnitTest { @@ -133,8 +132,7 @@ public class PriceServiceTest extends BaseMockitoUnitTest {
133 PriceCalculateRespDTO priceCalculate = priceService.calculatePrice(calculateReqDTO); 132 PriceCalculateRespDTO priceCalculate = priceService.calculatePrice(calculateReqDTO);
134 // 断言 Order 部分 133 // 断言 Order 部分
135 PriceCalculateRespDTO.Order order = priceCalculate.getOrder(); 134 PriceCalculateRespDTO.Order order = priceCalculate.getOrder();
136 - assertEquals(order.getOriginalPrice(), 350);  
137 - assertEquals(order.getOrderPrice(), 210); 135 + assertEquals(order.getTotalPrice(), 350);
138 assertEquals(order.getDiscountPrice(), 0); 136 assertEquals(order.getDiscountPrice(), 0);
139 assertEquals(order.getPointPrice(), 0); 137 assertEquals(order.getPointPrice(), 0);
140 assertEquals(order.getDeliveryPrice(), 0); 138 assertEquals(order.getDeliveryPrice(), 0);
@@ -167,7 +165,7 @@ public class PriceServiceTest extends BaseMockitoUnitTest { @@ -167,7 +165,7 @@ public class PriceServiceTest extends BaseMockitoUnitTest {
167 assertEquals(promotion01.getName(), "活动 1000 号"); 165 assertEquals(promotion01.getName(), "活动 1000 号");
168 assertEquals(promotion01.getType(), PromotionTypeEnum.DISCOUNT_ACTIVITY.getType()); 166 assertEquals(promotion01.getType(), PromotionTypeEnum.DISCOUNT_ACTIVITY.getType());
169 assertEquals(promotion01.getLevel(), PromotionLevelEnum.SKU.getLevel()); 167 assertEquals(promotion01.getLevel(), PromotionLevelEnum.SKU.getLevel());
170 - assertEquals(promotion01.getOriginalPrice(), 200); 168 + assertEquals(promotion01.getTotalPrice(), 200);
171 assertEquals(promotion01.getDiscountPrice(), 80); 169 assertEquals(promotion01.getDiscountPrice(), 80);
172 assertTrue(promotion01.getMeet()); 170 assertTrue(promotion01.getMeet());
173 assertEquals(promotion01.getMeetTip(), "限时折扣:省 0.80 元"); 171 assertEquals(promotion01.getMeetTip(), "限时折扣:省 0.80 元");
@@ -181,7 +179,7 @@ public class PriceServiceTest extends BaseMockitoUnitTest { @@ -181,7 +179,7 @@ public class PriceServiceTest extends BaseMockitoUnitTest {
181 assertEquals(promotion02.getName(), "活动 2000 号"); 179 assertEquals(promotion02.getName(), "活动 2000 号");
182 assertEquals(promotion02.getType(), PromotionTypeEnum.DISCOUNT_ACTIVITY.getType()); 180 assertEquals(promotion02.getType(), PromotionTypeEnum.DISCOUNT_ACTIVITY.getType());
183 assertEquals(promotion02.getLevel(), PromotionLevelEnum.SKU.getLevel()); 181 assertEquals(promotion02.getLevel(), PromotionLevelEnum.SKU.getLevel());
184 - assertEquals(promotion02.getOriginalPrice(), 150); 182 + assertEquals(promotion02.getTotalPrice(), 150);
185 assertEquals(promotion02.getDiscountPrice(), 60); 183 assertEquals(promotion02.getDiscountPrice(), 60);
186 assertTrue(promotion02.getMeet()); 184 assertTrue(promotion02.getMeet());
187 assertEquals(promotion02.getMeetTip(), "限时折扣:省 0.60 元"); 185 assertEquals(promotion02.getMeetTip(), "限时折扣:省 0.60 元");
@@ -225,8 +223,7 @@ public class PriceServiceTest extends BaseMockitoUnitTest { @@ -225,8 +223,7 @@ public class PriceServiceTest extends BaseMockitoUnitTest {
225 PriceCalculateRespDTO priceCalculate = priceService.calculatePrice(calculateReqDTO); 223 PriceCalculateRespDTO priceCalculate = priceService.calculatePrice(calculateReqDTO);
226 // 断言 Order 部分 224 // 断言 Order 部分
227 PriceCalculateRespDTO.Order order = priceCalculate.getOrder(); 225 PriceCalculateRespDTO.Order order = priceCalculate.getOrder();
228 - assertEquals(order.getOriginalPrice(), 470);  
229 - assertEquals(order.getOrderPrice(), 470); 226 + assertEquals(order.getTotalPrice(), 470);
230 assertEquals(order.getDiscountPrice(), 130); 227 assertEquals(order.getDiscountPrice(), 130);
231 assertEquals(order.getPointPrice(), 0); 228 assertEquals(order.getPointPrice(), 0);
232 assertEquals(order.getDeliveryPrice(), 0); 229 assertEquals(order.getDeliveryPrice(), 0);
@@ -268,7 +265,7 @@ public class PriceServiceTest extends BaseMockitoUnitTest { @@ -268,7 +265,7 @@ public class PriceServiceTest extends BaseMockitoUnitTest {
268 assertEquals(promotion01.getName(), "活动 1000 号"); 265 assertEquals(promotion01.getName(), "活动 1000 号");
269 assertEquals(promotion01.getType(), PromotionTypeEnum.REWARD_ACTIVITY.getType()); 266 assertEquals(promotion01.getType(), PromotionTypeEnum.REWARD_ACTIVITY.getType());
270 assertEquals(promotion01.getLevel(), PromotionLevelEnum.ORDER.getLevel()); 267 assertEquals(promotion01.getLevel(), PromotionLevelEnum.ORDER.getLevel());
271 - assertEquals(promotion01.getOriginalPrice(), 350); 268 + assertEquals(promotion01.getTotalPrice(), 350);
272 assertEquals(promotion01.getDiscountPrice(), 70); 269 assertEquals(promotion01.getDiscountPrice(), 70);
273 assertTrue(promotion01.getMeet()); 270 assertTrue(promotion01.getMeet());
274 assertEquals(promotion01.getMeetTip(), "满减送:省 0.70 元"); 271 assertEquals(promotion01.getMeetTip(), "满减送:省 0.70 元");
@@ -287,7 +284,7 @@ public class PriceServiceTest extends BaseMockitoUnitTest { @@ -287,7 +284,7 @@ public class PriceServiceTest extends BaseMockitoUnitTest {
287 assertEquals(promotion02.getName(), "活动 2000 号"); 284 assertEquals(promotion02.getName(), "活动 2000 号");
288 assertEquals(promotion02.getType(), PromotionTypeEnum.REWARD_ACTIVITY.getType()); 285 assertEquals(promotion02.getType(), PromotionTypeEnum.REWARD_ACTIVITY.getType());
289 assertEquals(promotion02.getLevel(), PromotionLevelEnum.ORDER.getLevel()); 286 assertEquals(promotion02.getLevel(), PromotionLevelEnum.ORDER.getLevel());
290 - assertEquals(promotion02.getOriginalPrice(), 120); 287 + assertEquals(promotion02.getTotalPrice(), 120);
291 assertEquals(promotion02.getDiscountPrice(), 60); 288 assertEquals(promotion02.getDiscountPrice(), 60);
292 assertTrue(promotion02.getMeet()); 289 assertTrue(promotion02.getMeet());
293 assertEquals(promotion02.getMeetTip(), "满减送:省 0.60 元"); 290 assertEquals(promotion02.getMeetTip(), "满减送:省 0.60 元");
@@ -323,8 +320,7 @@ public class PriceServiceTest extends BaseMockitoUnitTest { @@ -323,8 +320,7 @@ public class PriceServiceTest extends BaseMockitoUnitTest {
323 PriceCalculateRespDTO priceCalculate = priceService.calculatePrice(calculateReqDTO); 320 PriceCalculateRespDTO priceCalculate = priceService.calculatePrice(calculateReqDTO);
324 // 断言 Order 部分 321 // 断言 Order 部分
325 PriceCalculateRespDTO.Order order = priceCalculate.getOrder(); 322 PriceCalculateRespDTO.Order order = priceCalculate.getOrder();
326 - assertEquals(order.getOriginalPrice(), 350);  
327 - assertEquals(order.getOrderPrice(), 350); 323 + assertEquals(order.getTotalPrice(), 350);
328 assertEquals(order.getDiscountPrice(), 0); 324 assertEquals(order.getDiscountPrice(), 0);
329 assertEquals(order.getPointPrice(), 0); 325 assertEquals(order.getPointPrice(), 0);
330 assertEquals(order.getDeliveryPrice(), 0); 326 assertEquals(order.getDeliveryPrice(), 0);
@@ -357,7 +353,7 @@ public class PriceServiceTest extends BaseMockitoUnitTest { @@ -357,7 +353,7 @@ public class PriceServiceTest extends BaseMockitoUnitTest {
357 assertEquals(promotion01.getName(), "活动 1000 号"); 353 assertEquals(promotion01.getName(), "活动 1000 号");
358 assertEquals(promotion01.getType(), PromotionTypeEnum.REWARD_ACTIVITY.getType()); 354 assertEquals(promotion01.getType(), PromotionTypeEnum.REWARD_ACTIVITY.getType());
359 assertEquals(promotion01.getLevel(), PromotionLevelEnum.ORDER.getLevel()); 355 assertEquals(promotion01.getLevel(), PromotionLevelEnum.ORDER.getLevel());
360 - assertEquals(promotion01.getOriginalPrice(), 350); 356 + assertEquals(promotion01.getTotalPrice(), 350);
361 assertEquals(promotion01.getDiscountPrice(), 0); 357 assertEquals(promotion01.getDiscountPrice(), 0);
362 assertFalse(promotion01.getMeet()); 358 assertFalse(promotion01.getMeet());
363 assertEquals(promotion01.getMeetTip(), "TODO"); // TODO 芋艿:后面再想想 359 assertEquals(promotion01.getMeetTip(), "TODO"); // TODO 芋艿:后面再想想
@@ -396,8 +392,7 @@ public class PriceServiceTest extends BaseMockitoUnitTest { @@ -396,8 +392,7 @@ public class PriceServiceTest extends BaseMockitoUnitTest {
396 PriceCalculateRespDTO priceCalculate = priceService.calculatePrice(calculateReqDTO); 392 PriceCalculateRespDTO priceCalculate = priceService.calculatePrice(calculateReqDTO);
397 // 断言 Order 部分 393 // 断言 Order 部分
398 PriceCalculateRespDTO.Order order = priceCalculate.getOrder(); 394 PriceCalculateRespDTO.Order order = priceCalculate.getOrder();
399 - assertEquals(order.getOriginalPrice(), 470);  
400 - assertEquals(order.getOrderPrice(), 470); 395 + assertEquals(order.getTotalPrice(), 470);
401 assertEquals(order.getDiscountPrice(), 0); 396 assertEquals(order.getDiscountPrice(), 0);
402 assertEquals(order.getPointPrice(), 0); 397 assertEquals(order.getPointPrice(), 0);
403 assertEquals(order.getDeliveryPrice(), 0); 398 assertEquals(order.getDeliveryPrice(), 0);
@@ -440,7 +435,7 @@ public class PriceServiceTest extends BaseMockitoUnitTest { @@ -440,7 +435,7 @@ public class PriceServiceTest extends BaseMockitoUnitTest {
440 assertEquals(promotion01.getName(), "程序员节"); 435 assertEquals(promotion01.getName(), "程序员节");
441 assertEquals(promotion01.getType(), PromotionTypeEnum.COUPON.getType()); 436 assertEquals(promotion01.getType(), PromotionTypeEnum.COUPON.getType());
442 assertEquals(promotion01.getLevel(), PromotionLevelEnum.COUPON.getLevel()); 437 assertEquals(promotion01.getLevel(), PromotionLevelEnum.COUPON.getLevel());
443 - assertEquals(promotion01.getOriginalPrice(), 350); 438 + assertEquals(promotion01.getTotalPrice(), 350);
444 assertEquals(promotion01.getDiscountPrice(), 70); 439 assertEquals(promotion01.getDiscountPrice(), 70);
445 assertTrue(promotion01.getMeet()); 440 assertTrue(promotion01.getMeet());
446 assertEquals(promotion01.getMeetTip(), "优惠劵:省 0.70 元"); 441 assertEquals(promotion01.getMeetTip(), "优惠劵:省 0.70 元");
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/admin/order/vo/TradeOrderBaseVO.java
@@ -73,9 +73,6 @@ public class TradeOrderBaseVO { @@ -73,9 +73,6 @@ public class TradeOrderBaseVO {
73 @Schema(description = "商品原价(总)", required = true, example = "1000") 73 @Schema(description = "商品原价(总)", required = true, example = "1000")
74 private Integer originalPrice; 74 private Integer originalPrice;
75 75
76 - @Schema(description = "订单原价(总)", required = true, example = "1000")  
77 - private Integer orderPrice;  
78 -  
79 @Schema(description = "订单优惠(总)", required = true, example = "100") 76 @Schema(description = "订单优惠(总)", required = true, example = "100")
80 private Integer discountPrice; 77 private Integer discountPrice;
81 78
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/vo/AppTradeOrderDetailRespVO.java
@@ -59,10 +59,7 @@ public class AppTradeOrderDetailRespVO { @@ -59,10 +59,7 @@ public class AppTradeOrderDetailRespVO {
59 private String payChannelCode; 59 private String payChannelCode;
60 60
61 @Schema(description = "商品原价(总)", required = true, example = "1000") 61 @Schema(description = "商品原价(总)", required = true, example = "1000")
62 - private Integer originalPrice;  
63 -  
64 - @Schema(description = "订单原价(总)", required = true, example = "1000")  
65 - private Integer orderPrice; 62 + private Integer totalPrice;
66 63
67 @Schema(description = "订单优惠(总)", required = true, example = "100") 64 @Schema(description = "订单优惠(总)", required = true, example = "100")
68 private Integer discountPrice; 65 private Integer discountPrice;
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderDO.java
@@ -2,13 +2,8 @@ package cn.iocoder.yudao.module.trade.dal.dataobject.order; @@ -2,13 +2,8 @@ package cn.iocoder.yudao.module.trade.dal.dataobject.order;
2 2
3 import cn.iocoder.yudao.framework.common.enums.TerminalEnum; 3 import cn.iocoder.yudao.framework.common.enums.TerminalEnum;
4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; 4 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
5 -import cn.iocoder.yudao.module.promotion.api.price.dto.PriceCalculateRespDTO.OrderItem;  
6 import cn.iocoder.yudao.module.trade.enums.delivery.DeliveryTypeEnum; 5 import cn.iocoder.yudao.module.trade.enums.delivery.DeliveryTypeEnum;
7 -import cn.iocoder.yudao.module.trade.enums.order.TradeOrderCancelTypeEnum;  
8 -import cn.iocoder.yudao.module.trade.enums.order.TradeOrderRefundStatusEnum;  
9 -import cn.iocoder.yudao.module.trade.enums.order.TradeOrderDeliveryStatusEnum;  
10 -import cn.iocoder.yudao.module.trade.enums.order.TradeOrderStatusEnum;  
11 -import cn.iocoder.yudao.module.trade.enums.order.TradeOrderTypeEnum; 6 +import cn.iocoder.yudao.module.trade.enums.order.*;
12 import com.baomidou.mybatisplus.annotation.KeySequence; 7 import com.baomidou.mybatisplus.annotation.KeySequence;
13 import com.baomidou.mybatisplus.annotation.TableName; 8 import com.baomidou.mybatisplus.annotation.TableName;
14 import lombok.*; 9 import lombok.*;
@@ -134,25 +129,15 @@ public class TradeOrderDO extends BaseDO { @@ -134,25 +129,15 @@ public class TradeOrderDO extends BaseDO {
134 private String payChannelCode; 129 private String payChannelCode;
135 130
136 /** 131 /**
137 - * 商品原价(总),单位:分 132 + * 商品原价,单位:分
138 * 133 *
139 * totalPrice = {@link TradeOrderItemDO#getPrice()} * {@link TradeOrderItemDO#getCount()} 求和 134 * totalPrice = {@link TradeOrderItemDO#getPrice()} * {@link TradeOrderItemDO#getCount()} 求和
140 * 135 *
141 * 对应 taobao 的 trade.total_fee 字段 136 * 对应 taobao 的 trade.total_fee 字段
142 */ 137 */
143 private Integer totalPrice; 138 private Integer totalPrice;
144 - // TODO 芋艿:是不是要删除这个字段?  
145 /** 139 /**
146 - * 订单原价(总),单位:分  
147 - *  
148 - * 1. orderPrice = {@link OrderItem#getPayPrice()} 求和  
149 - * 2. orderPrice = {@link #totalPrice} - 商品级优惠  
150 - */  
151 - private Integer orderPrice;  
152 - /**  
153 - * 订单优惠(总),单位:分  
154 - *  
155 - * 订单级优惠:对主订单的优惠,常见如:订单满 200 元减 10 元;订单满 80 包邮。 140 + * 优惠金额,单位:分
156 * 141 *
157 * 对应 taobao 的 order.discount_fee 字段 142 * 对应 taobao 的 order.discount_fee 字段
158 */ 143 */
@@ -162,7 +147,7 @@ public class TradeOrderDO extends BaseDO { @@ -162,7 +147,7 @@ public class TradeOrderDO extends BaseDO {
162 */ 147 */
163 private Integer deliveryPrice; 148 private Integer deliveryPrice;
164 /** 149 /**
165 - * 订单调价(总),单位:分 150 + * 订单调价,单位:分
166 * 151 *
167 * 正数,加价;负数,减价 152 * 正数,加价;负数,减价
168 */ 153 */
@@ -170,11 +155,11 @@ public class TradeOrderDO extends BaseDO { @@ -170,11 +155,11 @@ public class TradeOrderDO extends BaseDO {
170 /** 155 /**
171 * 应付金额(总),单位:分 156 * 应付金额(总),单位:分
172 * 157 *
173 - * = {@link OrderItem#getPayPrice()} 求和 158 + * = {@link #totalPrice}
174 * - {@link #couponPrice} 159 * - {@link #couponPrice}
175 * - {@link #pointPrice} 160 * - {@link #pointPrice}
176 - * + {@link #deliveryPrice}  
177 * - {@link #discountPrice} 161 * - {@link #discountPrice}
  162 + * + {@link #deliveryPrice}
178 * + {@link #adjustPrice} 163 * + {@link #adjustPrice}
179 */ 164 */
180 private Integer payPrice; 165 private Integer payPrice;
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderItemDO.java
@@ -102,44 +102,47 @@ public class TradeOrderItemDO extends BaseDO { @@ -102,44 +102,47 @@ public class TradeOrderItemDO extends BaseDO {
102 */ 102 */
103 private Integer price; 103 private Integer price;
104 /** 104 /**
105 - * 商品优惠(总),单位:分  
106 - *  
107 - * 商品级优惠:对单个商品的,常见如:商品原价的 8 折;商品原价的减 50 元 105 + * 优惠金额(总),单位:分
108 * 106 *
109 * 对应 taobao 的 order.discount_fee 字段 107 * 对应 taobao 的 order.discount_fee 字段
110 */ 108 */
111 private Integer discountPrice; 109 private Integer discountPrice;
112 /** 110 /**
113 - * 子订单实付金额(总),不算主订单分摊金额,单位:分 111 + * 运费金额(总),单位:分
  112 + */
  113 + private Integer deliveryPrice;
  114 + /**
  115 + * 订单调价(总),单位:分
  116 + *
  117 + * 正数,加价;负数,减价
  118 + */
  119 + private Integer adjustPrice;
  120 + /**
  121 + * 应付金额(总),单位:分
114 * 122 *
115 * = {@link #price} * {@link #count} 123 * = {@link #price} * {@link #count}
  124 + * - {@link #couponPrice}
  125 + * - {@link #pointPrice}
116 * - {@link #discountPrice} 126 * - {@link #discountPrice}
117 - *  
118 - * 对应 taobao 的 order.payment 字段 127 + * + {@link #deliveryPrice}
  128 + * + {@link #adjustPrice}
119 */ 129 */
120 private Integer payPrice; 130 private Integer payPrice;
121 131
  132 + // ========== 营销基本信息 ==========
  133 +
122 /** 134 /**
123 - * 子订单分摊金额(总),单位:分  
124 - * 需要分摊 {@link TradeOrderDO#getDiscountPrice()}、{@link TradeOrderDO#getCouponPrice()}、{@link TradeOrderDO#getPointPrice()} 135 + * 优惠劵减免金额,单位:分
125 * 136 *
126 - * 对应 taobao 的 order.part_mjz_discount 字段  
127 - * 淘宝说明:子订单分摊优惠基础逻辑:一般正常优惠券和满减优惠按照子订单的金额进行分摊,特殊情况如果优惠券是指定商品使用的,只会分摊到对应商品子订单上不分摊。 137 + * 对应 taobao 的 trade.coupon_fee 字段
128 */ 138 */
129 - private Integer orderPartPrice; 139 + private Integer couponPrice;
130 /** 140 /**
131 - * 分摊后子订单实付金额(总),单位:分  
132 - *  
133 - * = {@link #payPrice}  
134 - * - {@link #orderPartPrice} 141 + * 积分抵扣的金额,单位:分
135 * 142 *
136 - * 对应 taobao 的 divide_order_fee 字段 143 + * 对应 taobao 的 trade.point_fee 字段
137 */ 144 */
138 - private Integer orderDividePrice;  
139 -  
140 - // ========== 营销基本信息 ==========  
141 -  
142 - // TODO 芋艿:在捉摸一下 145 + private Integer pointPrice;
143 146
144 // ========== 售后基本信息 ========== 147 // ========== 售后基本信息 ==========
145 /** 148 /**
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/aftersale/TradeAfterSaleServiceImpl.java
@@ -97,7 +97,7 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService { @@ -97,7 +97,7 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService {
97 } 97 }
98 98
99 // 申请的退款金额,不能超过商品的价格 99 // 申请的退款金额,不能超过商品的价格
100 - if (createReqVO.getRefundPrice() > orderItem.getOrderDividePrice()) { 100 + if (createReqVO.getRefundPrice() > orderItem.getPayPrice()) {
101 throw exception(AFTER_SALE_CREATE_FAIL_REFUND_PRICE_ERROR); 101 throw exception(AFTER_SALE_CREATE_FAIL_REFUND_PRICE_ERROR);
102 } 102 }
103 103
yudao-module-mall/yudao-module-trade-biz/src/test/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderServiceTest.java
@@ -124,7 +124,7 @@ public class TradeOrderServiceTest extends BaseDbUnitTest { @@ -124,7 +124,7 @@ public class TradeOrderServiceTest extends BaseDbUnitTest {
124 .setSpuId(21L).setSkuId(2L).setCount(4).setOriginalPrice(80).setOriginalUnitPrice(20) 124 .setSpuId(21L).setSkuId(2L).setCount(4).setOriginalPrice(80).setOriginalUnitPrice(20)
125 .setDiscountPrice(40).setPayPrice(40).setOrderPartPrice(15).setOrderDividePrice(25); 125 .setDiscountPrice(40).setPayPrice(40).setOrderPartPrice(15).setOrderDividePrice(25);
126 PriceCalculateRespDTO.Order priceOrder = new PriceCalculateRespDTO.Order() 126 PriceCalculateRespDTO.Order priceOrder = new PriceCalculateRespDTO.Order()
127 - .setOriginalPrice(230).setOrderPrice(100).setDiscountPrice(0).setCouponPrice(30) 127 + .setTotalPrice(230).setDiscountPrice(0).setCouponPrice(30)
128 .setPointPrice(10).setDeliveryPrice(20).setPayPrice(80).setCouponId(101L).setCouponPrice(30) 128 .setPointPrice(10).setDeliveryPrice(20).setPayPrice(80).setCouponId(101L).setCouponPrice(30)
129 .setItems(Arrays.asList(priceOrderItem01, priceOrderItem02)); 129 .setItems(Arrays.asList(priceOrderItem01, priceOrderItem02));
130 when(priceApi.calculatePrice(argThat(priceCalculateReqDTO -> { 130 when(priceApi.calculatePrice(argThat(priceCalculateReqDTO -> {
@@ -170,7 +170,6 @@ public class TradeOrderServiceTest extends BaseDbUnitTest { @@ -170,7 +170,6 @@ public class TradeOrderServiceTest extends BaseDbUnitTest {
170 assertFalse(tradeOrderDO.getPayed()); 170 assertFalse(tradeOrderDO.getPayed());
171 assertNull(tradeOrderDO.getPayTime()); 171 assertNull(tradeOrderDO.getPayTime());
172 assertEquals(tradeOrderDO.getTotalPrice(), 230); 172 assertEquals(tradeOrderDO.getTotalPrice(), 230);
173 - assertEquals(tradeOrderDO.getOrderPrice(), 100);  
174 assertEquals(tradeOrderDO.getDiscountPrice(), 0); 173 assertEquals(tradeOrderDO.getDiscountPrice(), 0);
175 assertEquals(tradeOrderDO.getAdjustPrice(), 0); 174 assertEquals(tradeOrderDO.getAdjustPrice(), 0);
176 assertEquals(tradeOrderDO.getPayPrice(), 80); 175 assertEquals(tradeOrderDO.getPayPrice(), 80);
@@ -208,8 +207,6 @@ public class TradeOrderServiceTest extends BaseDbUnitTest { @@ -208,8 +207,6 @@ public class TradeOrderServiceTest extends BaseDbUnitTest {
208 assertEquals(tradeOrderItemDO01.getPrice(), 50); 207 assertEquals(tradeOrderItemDO01.getPrice(), 50);
209 assertEquals(tradeOrderItemDO01.getDiscountPrice(), 20); 208 assertEquals(tradeOrderItemDO01.getDiscountPrice(), 20);
210 assertEquals(tradeOrderItemDO01.getPayPrice(), 130); 209 assertEquals(tradeOrderItemDO01.getPayPrice(), 130);
211 - assertEquals(tradeOrderItemDO01.getOrderPartPrice(), 7);  
212 - assertEquals(tradeOrderItemDO01.getOrderDividePrice(), 35);  
213 assertEquals(tradeOrderItemDO01.getAfterSaleStatus(), TradeOrderItemAfterSaleStatusEnum.NONE.getStatus()); 210 assertEquals(tradeOrderItemDO01.getAfterSaleStatus(), TradeOrderItemAfterSaleStatusEnum.NONE.getStatus());
214 // 断言 TradeOrderItemDO 订单(第 2 个) 211 // 断言 TradeOrderItemDO 订单(第 2 个)
215 TradeOrderItemDO tradeOrderItemDO02 = tradeOrderItemDOs.get(1); 212 TradeOrderItemDO tradeOrderItemDO02 = tradeOrderItemDOs.get(1);
@@ -228,8 +225,6 @@ public class TradeOrderServiceTest extends BaseDbUnitTest { @@ -228,8 +225,6 @@ public class TradeOrderServiceTest extends BaseDbUnitTest {
228 assertEquals(tradeOrderItemDO02.getPrice(), 20); 225 assertEquals(tradeOrderItemDO02.getPrice(), 20);
229 assertEquals(tradeOrderItemDO02.getDiscountPrice(), 40); 226 assertEquals(tradeOrderItemDO02.getDiscountPrice(), 40);
230 assertEquals(tradeOrderItemDO02.getPayPrice(), 40); 227 assertEquals(tradeOrderItemDO02.getPayPrice(), 40);
231 - assertEquals(tradeOrderItemDO02.getOrderPartPrice(), 15);  
232 - assertEquals(tradeOrderItemDO02.getOrderDividePrice(), 25);  
233 assertEquals(tradeOrderItemDO02.getAfterSaleStatus(), TradeOrderItemAfterSaleStatusEnum.NONE.getStatus()); 228 assertEquals(tradeOrderItemDO02.getAfterSaleStatus(), TradeOrderItemAfterSaleStatusEnum.NONE.getStatus());
234 // 校验调用 229 // 校验调用
235 verify(productSkuApi).updateSkuStock(argThat(updateStockReqDTO -> { 230 verify(productSkuApi).updateSkuStock(argThat(updateStockReqDTO -> {