Commit 02fa6fc5c6187bc1c731e11f574675d7aac410fc
1 parent
0083d124
mall + trade:调整价格字段,更易懂
Showing
10 changed files
with
54 additions
and
89 deletions
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 -> { |