Commit dd6adb8ee6f431d062dc826971711066675f6f86
1 parent
361ad2e2
code review order
Showing
7 changed files
with
46 additions
and
22 deletions
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/delivery/AppDeliverPickUpStoreController.java
| @@ -24,6 +24,7 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | @@ -24,6 +24,7 @@ import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||
| 24 | @Validated | 24 | @Validated |
| 25 | public class AppDeliverPickUpStoreController { | 25 | public class AppDeliverPickUpStoreController { |
| 26 | 26 | ||
| 27 | + // TODO 待实现[门店自提]:如果 latitude、longitude 非空,计算经纬度,并排序。计算的库,可以使用 hutool 的 DistanceUtil 计算。 | ||
| 27 | @GetMapping("/list") | 28 | @GetMapping("/list") |
| 28 | @Operation(summary = "获得自提门店列表") | 29 | @Operation(summary = "获得自提门店列表") |
| 29 | public CommonResult<List<AppDeliveryPickUpStoreRespVO>> getDeliveryPickUpStoreList( | 30 | public CommonResult<List<AppDeliveryPickUpStoreRespVO>> getDeliveryPickUpStoreList( |
| @@ -50,6 +51,7 @@ public class AppDeliverPickUpStoreController { | @@ -50,6 +51,7 @@ public class AppDeliverPickUpStoreController { | ||
| 50 | return success(list); | 51 | return success(list); |
| 51 | } | 52 | } |
| 52 | 53 | ||
| 54 | + // TODO 待实现[门店自提]: | ||
| 53 | @GetMapping("/get") | 55 | @GetMapping("/get") |
| 54 | @Operation(summary = "获得自提门店") | 56 | @Operation(summary = "获得自提门店") |
| 55 | @Parameter(name = "id", description = "门店编号") | 57 | @Parameter(name = "id", description = "门店编号") |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/controller/app/order/AppTradeOrderController.java
| @@ -50,9 +50,6 @@ public class AppTradeOrderController { | @@ -50,9 +50,6 @@ public class AppTradeOrderController { | ||
| 50 | private DeliveryExpressService deliveryExpressService; | 50 | private DeliveryExpressService deliveryExpressService; |
| 51 | 51 | ||
| 52 | @Resource | 52 | @Resource |
| 53 | - private ProductPropertyValueApi productPropertyValueApi; | ||
| 54 | - | ||
| 55 | - @Resource | ||
| 56 | private TradeOrderProperties tradeOrderProperties; | 53 | private TradeOrderProperties tradeOrderProperties; |
| 57 | 54 | ||
| 58 | @GetMapping("/settlement") | 55 | @GetMapping("/settlement") |
| @@ -78,6 +75,7 @@ public class AppTradeOrderController { | @@ -78,6 +75,7 @@ public class AppTradeOrderController { | ||
| 78 | return success(true); | 75 | return success(true); |
| 79 | } | 76 | } |
| 80 | 77 | ||
| 78 | + // TODO @芋艿:如果拼团活动、秒杀活动、砍价活动时,是不是要额外在返回活动之类的信息; | ||
| 81 | @GetMapping("/get-detail") | 79 | @GetMapping("/get-detail") |
| 82 | @Operation(summary = "获得交易订单") | 80 | @Operation(summary = "获得交易订单") |
| 83 | @Parameter(name = "id", description = "交易订单编号") | 81 | @Parameter(name = "id", description = "交易订单编号") |
| @@ -93,6 +91,7 @@ public class AppTradeOrderController { | @@ -93,6 +91,7 @@ public class AppTradeOrderController { | ||
| 93 | // 查询物流公司 | 91 | // 查询物流公司 |
| 94 | DeliveryExpressDO express = order.getLogisticsId() != null && order.getLogisticsId() > 0 ? | 92 | DeliveryExpressDO express = order.getLogisticsId() != null && order.getLogisticsId() > 0 ? |
| 95 | deliveryExpressService.getDeliveryExpress(order.getLogisticsId()) : null; | 93 | deliveryExpressService.getDeliveryExpress(order.getLogisticsId()) : null; |
| 94 | + // TODO @puhui999:如果门店自提,信息的拼接; | ||
| 96 | // 最终组合 | 95 | // 最终组合 |
| 97 | return success(TradeOrderConvert.INSTANCE.convert02(order, orderItems, tradeOrderProperties, express)); | 96 | return success(TradeOrderConvert.INSTANCE.convert02(order, orderItems, tradeOrderProperties, express)); |
| 98 | } | 97 | } |
| @@ -141,7 +140,7 @@ public class AppTradeOrderController { | @@ -141,7 +140,7 @@ public class AppTradeOrderController { | ||
| 141 | @PutMapping("/receive") | 140 | @PutMapping("/receive") |
| 142 | @Operation(summary = "确认交易订单收货") | 141 | @Operation(summary = "确认交易订单收货") |
| 143 | @Parameter(name = "id", description = "交易订单编号") | 142 | @Parameter(name = "id", description = "交易订单编号") |
| 144 | - public CommonResult<Boolean> takeOrder(@RequestParam("id") Long id) { | 143 | + public CommonResult<Boolean> receiveOrder(@RequestParam("id") Long id) { |
| 145 | tradeOrderUpdateService.receiveOrder(getLoginUserId(), id); | 144 | tradeOrderUpdateService.receiveOrder(getLoginUserId(), id); |
| 146 | return success(true); | 145 | return success(true); |
| 147 | } | 146 | } |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/dal/dataobject/order/TradeOrderItemDO.java
| @@ -143,6 +143,8 @@ public class TradeOrderItemDO extends BaseDO { | @@ -143,6 +143,8 @@ public class TradeOrderItemDO extends BaseDO { | ||
| 143 | * 对应 taobao 的 trade.point_fee 字段 | 143 | * 对应 taobao 的 trade.point_fee 字段 |
| 144 | */ | 144 | */ |
| 145 | private Integer pointPrice; | 145 | private Integer pointPrice; |
| 146 | + // TODO @芋艿:如果商品 vip 折扣时,到底是新增一个 vipPrice 记录优惠记录,还是 vipDiscountPrice,记录 vip 的优惠;还是直接使用 vipPrice; | ||
| 147 | + // 目前 crmeb 的选择,单独一个 vipPrice 记录优惠价格;感觉不一定合理,可以在看看有赞的; | ||
| 146 | 148 | ||
| 147 | // ========== 售后基本信息 ========== | 149 | // ========== 售后基本信息 ========== |
| 148 | 150 |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/aftersale/TradeAfterSaleServiceImpl.java
| @@ -98,6 +98,8 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService, AfterSa | @@ -98,6 +98,8 @@ public class TradeAfterSaleServiceImpl implements TradeAfterSaleService, AfterSa | ||
| 98 | return afterSale; | 98 | return afterSale; |
| 99 | } | 99 | } |
| 100 | 100 | ||
| 101 | + // TODO 芋艿:拼团失败,要不要发起售后的方式退款?还是走取消逻辑? | ||
| 102 | + | ||
| 101 | @Override | 103 | @Override |
| 102 | @Transactional(rollbackFor = Exception.class) | 104 | @Transactional(rollbackFor = Exception.class) |
| 103 | public Long createAfterSale(Long userId, AppTradeAfterSaleCreateReqVO createReqVO) { | 105 | public Long createAfterSale(Long userId, AppTradeAfterSaleCreateReqVO createReqVO) { |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderUpdateServiceImpl.java
| @@ -96,6 +96,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | @@ -96,6 +96,8 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | ||
| 96 | private TradePriceService tradePriceService; | 96 | private TradePriceService tradePriceService; |
| 97 | @Resource | 97 | @Resource |
| 98 | private DeliveryExpressService deliveryExpressService; | 98 | private DeliveryExpressService deliveryExpressService; |
| 99 | + @Resource | ||
| 100 | + private TradeMessageService tradeMessageService; | ||
| 99 | 101 | ||
| 100 | @Resource | 102 | @Resource |
| 101 | private ProductSkuApi productSkuApi; | 103 | private ProductSkuApi productSkuApi; |
| @@ -105,26 +107,21 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | @@ -105,26 +107,21 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | ||
| 105 | private AddressApi addressApi; | 107 | private AddressApi addressApi; |
| 106 | @Resource | 108 | @Resource |
| 107 | private CouponApi couponApi; | 109 | private CouponApi couponApi; |
| 108 | - | 110 | + @Resource |
| 111 | + private CombinationRecordApi combinationRecordApi; | ||
| 112 | + @Resource | ||
| 113 | + private BargainRecordApi bargainRecordApi; | ||
| 109 | @Resource | 114 | @Resource |
| 110 | private MemberUserApi memberUserApi; | 115 | private MemberUserApi memberUserApi; |
| 111 | @Resource | 116 | @Resource |
| 112 | private MemberLevelApi memberLevelApi; | 117 | private MemberLevelApi memberLevelApi; |
| 113 | @Resource | 118 | @Resource |
| 114 | private MemberPointApi memberPointApi; | 119 | private MemberPointApi memberPointApi; |
| 115 | - | ||
| 116 | @Resource | 120 | @Resource |
| 117 | private ProductCommentApi productCommentApi; | 121 | private ProductCommentApi productCommentApi; |
| 118 | - @Resource | ||
| 119 | - private TradeMessageService tradeMessageService; | ||
| 120 | - @Resource | ||
| 121 | - private TradeOrderProperties tradeOrderProperties; | ||
| 122 | 122 | ||
| 123 | @Resource | 123 | @Resource |
| 124 | - private CombinationRecordApi combinationRecordApi; | ||
| 125 | - | ||
| 126 | - @Resource | ||
| 127 | - private BargainRecordApi bargainRecordApi; | 124 | + private TradeOrderProperties tradeOrderProperties; |
| 128 | 125 | ||
| 129 | // =================== Order =================== | 126 | // =================== Order =================== |
| 130 | 127 | ||
| @@ -179,15 +176,17 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | @@ -179,15 +176,17 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | ||
| 179 | @Override | 176 | @Override |
| 180 | @Transactional(rollbackFor = Exception.class) | 177 | @Transactional(rollbackFor = Exception.class) |
| 181 | public TradeOrderDO createOrder(Long userId, String userIp, AppTradeOrderCreateReqVO createReqVO) { | 178 | public TradeOrderDO createOrder(Long userId, String userIp, AppTradeOrderCreateReqVO createReqVO) { |
| 182 | - // 2. 价格计算 | 179 | + // 1. 价格计算 |
| 183 | TradePriceCalculateRespBO calculateRespBO = calculatePrice(userId, createReqVO); | 180 | TradePriceCalculateRespBO calculateRespBO = calculatePrice(userId, createReqVO); |
| 184 | - // 3.1 插入 TradeOrderDO 订单 | 181 | + |
| 182 | + // 2.1 插入 TradeOrderDO 订单 | ||
| 185 | TradeOrderDO order = createTradeOrder(userId, userIp, createReqVO, calculateRespBO); | 183 | TradeOrderDO order = createTradeOrder(userId, userIp, createReqVO, calculateRespBO); |
| 186 | - // 3.2 插入 TradeOrderItemDO 订单项 | 184 | + // 2.2 插入 TradeOrderItemDO 订单项 |
| 187 | List<TradeOrderItemDO> orderItems = createTradeOrderItems(order, calculateRespBO); | 185 | List<TradeOrderItemDO> orderItems = createTradeOrderItems(order, calculateRespBO); |
| 188 | - // 订单创建完后的逻辑 | 186 | + |
| 187 | + // 3. 订单创建完后的逻辑 | ||
| 189 | afterCreateTradeOrder(userId, createReqVO, order, orderItems, calculateRespBO); | 188 | afterCreateTradeOrder(userId, createReqVO, order, orderItems, calculateRespBO); |
| 190 | - // 3.3 校验订单类型 | 189 | + // 3.1 拼团的特殊逻辑 |
| 191 | // TODO @puhui999:这个逻辑,先抽个小方法;未来要通过设计模式,把这些拼团之类的逻辑,抽象出去 | 190 | // TODO @puhui999:这个逻辑,先抽个小方法;未来要通过设计模式,把这些拼团之类的逻辑,抽象出去 |
| 192 | // 拼团 | 191 | // 拼团 |
| 193 | if (Objects.equals(TradeOrderTypeEnum.COMBINATION.getType(), order.getType())) { | 192 | if (Objects.equals(TradeOrderTypeEnum.COMBINATION.getType(), order.getType())) { |
| @@ -205,15 +204,21 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | @@ -205,15 +204,21 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | ||
| 205 | 204 | ||
| 206 | combinationRecordApi.createCombinationRecord(TradeOrderConvert.INSTANCE.convert(order, orderItemDO, createReqVO, user)); | 205 | combinationRecordApi.createCombinationRecord(TradeOrderConvert.INSTANCE.convert(order, orderItemDO, createReqVO, user)); |
| 207 | } | 206 | } |
| 207 | + // 3.2 秒杀的特殊逻辑 | ||
| 208 | // TODO 秒杀扣减库存是下单就扣除还是等待订单支付成功再扣除 | 208 | // TODO 秒杀扣减库存是下单就扣除还是等待订单支付成功再扣除 |
| 209 | if (Objects.equals(TradeOrderTypeEnum.SECKILL.getType(), order.getType())) { | 209 | if (Objects.equals(TradeOrderTypeEnum.SECKILL.getType(), order.getType())) { |
| 210 | 210 | ||
| 211 | } | 211 | } |
| 212 | + // 3.3 砍价的特殊逻辑 | ||
| 212 | 213 | ||
| 213 | // TODO @LeeYan9: 是可以思考下, 订单的营销优惠记录, 应该记录在哪里, 微信讨论起来! | 214 | // TODO @LeeYan9: 是可以思考下, 订单的营销优惠记录, 应该记录在哪里, 微信讨论起来! |
| 214 | return order; | 215 | return order; |
| 215 | } | 216 | } |
| 216 | 217 | ||
| 218 | + // TODO @puhui999:订单超时,自动取消; | ||
| 219 | + | ||
| 220 | + // TODO @疯狂:用户手动取消订单; | ||
| 221 | + | ||
| 217 | /** | 222 | /** |
| 218 | * 校验收件地址是否存在 | 223 | * 校验收件地址是否存在 |
| 219 | * | 224 | * |
| @@ -239,7 +244,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | @@ -239,7 +244,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | ||
| 239 | } | 244 | } |
| 240 | TradeOrderDO order = TradeOrderConvert.INSTANCE.convert(userId, clientIp, createReqVO, calculateRespBO, address); | 245 | TradeOrderDO order = TradeOrderConvert.INSTANCE.convert(userId, clientIp, createReqVO, calculateRespBO, address); |
| 241 | order.setType(validateActivity(createReqVO)); | 246 | order.setType(validateActivity(createReqVO)); |
| 242 | - order.setNo(IdUtil.getSnowflakeNextId() + ""); // TODO @LeeYan9: 思考下, 怎么生成好点哈; 这个是会展示给用户的; | 247 | + order.setNo(IdUtil.getSnowflakeNextId() + ""); // TODO @puhui999: 参考支付订单,的 no 生成哈; |
| 243 | order.setStatus(TradeOrderStatusEnum.UNPAID.getStatus()); | 248 | order.setStatus(TradeOrderStatusEnum.UNPAID.getStatus()); |
| 244 | order.setRefundStatus(TradeOrderRefundStatusEnum.NONE.getStatus()); | 249 | order.setRefundStatus(TradeOrderRefundStatusEnum.NONE.getStatus()); |
| 245 | order.setProductCount(getSumValue(calculateRespBO.getItems(), TradePriceCalculateRespBO.OrderItem::getCount, Integer::sum)); | 250 | order.setProductCount(getSumValue(calculateRespBO.getItems(), TradePriceCalculateRespBO.OrderItem::getCount, Integer::sum)); |
| @@ -251,6 +256,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | @@ -251,6 +256,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | ||
| 251 | // 退款信息 | 256 | // 退款信息 |
| 252 | order.setRefundStatus(TradeOrderRefundStatusEnum.NONE.getStatus()).setRefundPrice(0); | 257 | order.setRefundStatus(TradeOrderRefundStatusEnum.NONE.getStatus()).setRefundPrice(0); |
| 253 | tradeOrderMapper.insert(order); | 258 | tradeOrderMapper.insert(order); |
| 259 | + // TODO @puhui999:如果是门店订单,则需要生成核销码; | ||
| 254 | return order; | 260 | return order; |
| 255 | } | 261 | } |
| 256 | 262 | ||
| @@ -291,6 +297,10 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | @@ -291,6 +297,10 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | ||
| 291 | TradeOrderDO tradeOrderDO, List<TradeOrderItemDO> orderItems, | 297 | TradeOrderDO tradeOrderDO, List<TradeOrderItemDO> orderItems, |
| 292 | TradePriceCalculateRespBO calculateRespBO) { | 298 | TradePriceCalculateRespBO calculateRespBO) { |
| 293 | // 下单时扣减商品库存 | 299 | // 下单时扣减商品库存 |
| 300 | + // TODO @puhui999:扣库存,需要前置; | ||
| 301 | + // 1)如果是秒杀商品:额外扣减秒杀的库存; | ||
| 302 | + // 2)如果是拼团活动:额外扣减拼团的库存; | ||
| 303 | + // 3)如果是砍价活动:额外扣减砍价的库存; | ||
| 294 | productSkuApi.updateSkuStock(TradeOrderConvert.INSTANCE.convert(orderItems)); | 304 | productSkuApi.updateSkuStock(TradeOrderConvert.INSTANCE.convert(orderItems)); |
| 295 | 305 | ||
| 296 | // 删除购物车商品 | 306 | // 删除购物车商品 |
| @@ -299,9 +309,9 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | @@ -299,9 +309,9 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | ||
| 299 | cartService.deleteCart(userId, cartIds); | 309 | cartService.deleteCart(userId, cartIds); |
| 300 | } | 310 | } |
| 301 | 311 | ||
| 302 | - // 扣减积分 TODO 芋艿:待实现 | 312 | + // 扣减积分 TODO 芋艿:待实现,需要前置; |
| 303 | 313 | ||
| 304 | - // 有使用优惠券时更新 | 314 | + // 有使用优惠券时更新 TODO 芋艿:需要前置; |
| 305 | if (createReqVO.getCouponId() != null) { | 315 | if (createReqVO.getCouponId() != null) { |
| 306 | couponApi.useCoupon(new CouponUseReqDTO().setId(createReqVO.getCouponId()).setUserId(userId) | 316 | couponApi.useCoupon(new CouponUseReqDTO().setId(createReqVO.getCouponId()).setUserId(userId) |
| 307 | .setOrderId(tradeOrderDO.getId())); | 317 | .setOrderId(tradeOrderDO.getId())); |
| @@ -510,6 +520,10 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | @@ -510,6 +520,10 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | ||
| 510 | // TODO 芋艿:lili 发送订单变化的消息 | 520 | // TODO 芋艿:lili 发送订单变化的消息 |
| 511 | 521 | ||
| 512 | // TODO 芋艿:lili 发送商品被购买完成的数据 | 522 | // TODO 芋艿:lili 发送商品被购买完成的数据 |
| 523 | + | ||
| 524 | + // TODO 芋艿:销售佣金的记录; | ||
| 525 | + | ||
| 526 | + // TODO 芋艿:获得积分; | ||
| 513 | } | 527 | } |
| 514 | 528 | ||
| 515 | @Override | 529 | @Override |
| @@ -529,11 +543,13 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | @@ -529,11 +543,13 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | ||
| 529 | if (order.getPayStatus()) { | 543 | if (order.getPayStatus()) { |
| 530 | throw exception(ORDER_UPDATE_PRICE_FAIL_PAID); | 544 | throw exception(ORDER_UPDATE_PRICE_FAIL_PAID); |
| 531 | } | 545 | } |
| 546 | + // TODO @puhui999:如果改价,需要校验下是否真的变化; | ||
| 532 | 547 | ||
| 533 | // 更新 | 548 | // 更新 |
| 534 | // TODO @puhui999:TradeOrderItemDO 需要做 adjustPrice 的分摊;另外,支付订单那的价格,需要 update 下; | 549 | // TODO @puhui999:TradeOrderItemDO 需要做 adjustPrice 的分摊;另外,支付订单那的价格,需要 update 下; |
| 535 | TradeOrderDO update = TradeOrderConvert.INSTANCE.convert(reqVO); | 550 | TradeOrderDO update = TradeOrderConvert.INSTANCE.convert(reqVO); |
| 536 | update.setPayPrice(update.getPayPrice() + update.getAdjustPrice()); | 551 | update.setPayPrice(update.getPayPrice() + update.getAdjustPrice()); |
| 552 | + // TODO @芋艿:改价时,赠送的积分,要不要做改动??? | ||
| 537 | tradeOrderMapper.updateById(update); | 553 | tradeOrderMapper.updateById(update); |
| 538 | } | 554 | } |
| 539 | 555 | ||
| @@ -651,6 +667,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | @@ -651,6 +667,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { | ||
| 651 | List<TradeOrderItemDO> orderItems = tradeOrderItemMapper.selectListByOrderId(order.getId()); | 667 | List<TradeOrderItemDO> orderItems = tradeOrderItemMapper.selectListByOrderId(order.getId()); |
| 652 | if (!anyMatch(orderItems, item -> Objects.equals(item.getCommentStatus(), Boolean.FALSE))) { | 668 | if (!anyMatch(orderItems, item -> Objects.equals(item.getCommentStatus(), Boolean.FALSE))) { |
| 653 | tradeOrderMapper.updateById(new TradeOrderDO().setId(order.getId()).setCommentStatus(Boolean.TRUE)); | 669 | tradeOrderMapper.updateById(new TradeOrderDO().setId(order.getId()).setCommentStatus(Boolean.TRUE)); |
| 670 | + // TODO 待实现:已完成评价,要不要写一条订单日志?目前 crmeb 会写,有赞可以研究下 | ||
| 654 | } | 671 | } |
| 655 | return comment; | 672 | return comment; |
| 656 | } | 673 | } |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/TradePriceServiceImpl.java
| @@ -41,6 +41,7 @@ public class TradePriceServiceImpl implements TradePriceService { | @@ -41,6 +41,7 @@ public class TradePriceServiceImpl implements TradePriceService { | ||
| 41 | @Resource | 41 | @Resource |
| 42 | private List<TradePriceCalculator> priceCalculators; | 42 | private List<TradePriceCalculator> priceCalculators; |
| 43 | 43 | ||
| 44 | + // TODO @疯狂:需要搞个 TradePriceCalculator,计算赠送积分; | ||
| 44 | @Override | 45 | @Override |
| 45 | public TradePriceCalculateRespBO calculatePrice(TradePriceCalculateReqBO calculateReqBO) { | 46 | public TradePriceCalculateRespBO calculatePrice(TradePriceCalculateReqBO calculateReqBO) { |
| 46 | // 1.1 获得商品 SKU 数组 | 47 | // 1.1 获得商品 SKU 数组 |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/price/calculator/TradeDeliveryPriceCalculator.java
| @@ -42,6 +42,7 @@ public class TradeDeliveryPriceCalculator implements TradePriceCalculator { | @@ -42,6 +42,7 @@ public class TradeDeliveryPriceCalculator implements TradePriceCalculator { | ||
| 42 | 42 | ||
| 43 | @Override | 43 | @Override |
| 44 | public void calculate(TradePriceCalculateReqBO param, TradePriceCalculateRespBO result) { | 44 | public void calculate(TradePriceCalculateReqBO param, TradePriceCalculateRespBO result) { |
| 45 | + // TODO @芋艿:如果门店自提,需要校验是否开启; | ||
| 45 | // 1.1 判断配送方式 | 46 | // 1.1 判断配送方式 |
| 46 | if (param.getDeliveryType() == null || DeliveryTypeEnum.PICK_UP.getMode().equals(param.getDeliveryType())) { | 47 | if (param.getDeliveryType() == null || DeliveryTypeEnum.PICK_UP.getMode().equals(param.getDeliveryType())) { |
| 47 | return; | 48 | return; |