Commit 26dfbfb2ac7a229b160b4a16d9978d247a4f3015
1 parent
53bd1b9e
trade:发货逻辑,增加订单日志
Showing
3 changed files
with
15 additions
and
6 deletions
yudao-module-mall/yudao-module-trade-api/src/main/java/cn/iocoder/yudao/module/trade/enums/order/TradeOrderOperateTypeEnum.java
| ... | ... | @@ -14,7 +14,8 @@ import lombok.RequiredArgsConstructor; |
| 14 | 14 | public enum TradeOrderOperateTypeEnum { |
| 15 | 15 | |
| 16 | 16 | MEMBER_CREATE(1, "用户下单"), |
| 17 | - MEMBER_PAY(20, "用户付款成功"), | |
| 17 | + MEMBER_PAY(10, "用户付款成功"), | |
| 18 | + ADMIN_DELIVERY(20, "已发货,快递公司:{deliveryName},快递单号:{logisticsNo}"), | |
| 18 | 19 | MEMBER_RECEIVE(30, "用户已收货"), |
| 19 | 20 | SYSTEM_RECEIVE(31, "到期未收货,系统自动确认收货"), |
| 20 | 21 | MEMBER_COMMENT(33, "用户评价"), | ... | ... |
yudao-module-mall/yudao-module-trade-biz/src/main/java/cn/iocoder/yudao/module/trade/service/order/TradeOrderUpdateServiceImpl.java
| ... | ... | @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.trade.service.order; |
| 2 | 2 | |
| 3 | 3 | import cn.hutool.core.collection.CollUtil; |
| 4 | 4 | import cn.hutool.core.lang.Assert; |
| 5 | +import cn.hutool.core.map.MapUtil; | |
| 5 | 6 | import cn.hutool.core.util.ObjectUtil; |
| 6 | 7 | import cn.hutool.core.util.RandomUtil; |
| 7 | 8 | import cn.hutool.core.util.StrUtil; |
| ... | ... | @@ -40,6 +41,7 @@ import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderSettle |
| 40 | 41 | import cn.iocoder.yudao.module.trade.controller.app.order.vo.item.AppTradeOrderItemCommentCreateReqVO; |
| 41 | 42 | import cn.iocoder.yudao.module.trade.convert.order.TradeOrderConvert; |
| 42 | 43 | import cn.iocoder.yudao.module.trade.dal.dataobject.cart.CartDO; |
| 44 | +import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryExpressDO; | |
| 43 | 45 | import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO; |
| 44 | 46 | import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO; |
| 45 | 47 | import cn.iocoder.yudao.module.trade.dal.mysql.order.TradeOrderItemMapper; |
| ... | ... | @@ -412,6 +414,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { |
| 412 | 414 | |
| 413 | 415 | @Override |
| 414 | 416 | @Transactional(rollbackFor = Exception.class) |
| 417 | + @TradeOrderLog(operateType = TradeOrderOperateTypeEnum.MEMBER_CANCEL) | |
| 415 | 418 | public void deliveryOrder(TradeOrderDeliveryReqVO deliveryReqVO) { |
| 416 | 419 | // 1.1 校验并获得交易订单(可发货) |
| 417 | 420 | TradeOrderDO order = validateOrderDeliverable(deliveryReqVO.getId()); |
| ... | ... | @@ -423,8 +426,9 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { |
| 423 | 426 | // 2. 更新订单为已发货 |
| 424 | 427 | TradeOrderDO updateOrderObj = new TradeOrderDO(); |
| 425 | 428 | // 2.1 快递发货 |
| 429 | + DeliveryExpressDO express = null; | |
| 426 | 430 | if (ObjectUtil.notEqual(deliveryReqVO.getLogisticsId(), TradeOrderDO.LOGISTICS_ID_NULL)) { |
| 427 | - deliveryExpressService.validateDeliveryExpress(deliveryReqVO.getLogisticsId()); | |
| 431 | + express = deliveryExpressService.validateDeliveryExpress(deliveryReqVO.getLogisticsId()); | |
| 428 | 432 | updateOrderObj.setLogisticsId(deliveryReqVO.getLogisticsId()).setLogisticsNo(deliveryReqVO.getLogisticsNo()); |
| 429 | 433 | } else { |
| 430 | 434 | // 2.2 无需发货 |
| ... | ... | @@ -437,11 +441,14 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { |
| 437 | 441 | throw exception(ORDER_DELIVERY_FAIL_STATUS_NOT_UNDELIVERED); |
| 438 | 442 | } |
| 439 | 443 | |
| 440 | - // 发送站内信 | |
| 444 | + // 3. 记录订单日志 | |
| 445 | + TradeOrderLogUtils.setOrderInfo(order.getId(), order.getStatus(), TradeOrderStatusEnum.DELIVERED.getStatus(), | |
| 446 | + MapUtil.<String, Object>builder().put("expressName", express != null ? express.getName() : "") | |
| 447 | + .put("logisticsNo", express != null ? deliveryReqVO.getLogisticsNo() : "").build()); | |
| 448 | + | |
| 449 | + // 4. 发送站内信 | |
| 441 | 450 | tradeMessageService.sendMessageWhenDeliveryOrder(new TradeOrderMessageWhenDeliveryOrderReqBO().setOrderId(order.getId()) |
| 442 | 451 | .setUserId(order.getUserId()).setMessage(null)); |
| 443 | - | |
| 444 | - // TODO 芋艿:OrderLog | |
| 445 | 452 | } |
| 446 | 453 | |
| 447 | 454 | /** |
| ... | ... | @@ -468,6 +475,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService { |
| 468 | 475 | // 订单类类型:砍价 |
| 469 | 476 | if (Objects.equals(TradeOrderTypeEnum.BARGAIN.getType(), order.getType())) { |
| 470 | 477 | // 校验订单砍价是否成功 |
| 478 | + // TODO @puhui999:砍价的话,应该不用校验。因为是砍价成功后,才可以下单 | |
| 471 | 479 | if (!bargainRecordApi.isBargainRecordSuccess(order.getUserId(), order.getId())) { |
| 472 | 480 | throw exception(ORDER_DELIVERY_FAIL_BARGAIN_RECORD_STATUS_NOT_SUCCESS); |
| 473 | 481 | } | ... | ... |
yudao-server/src/main/resources/application-local.yaml
| ... | ... | @@ -78,7 +78,7 @@ spring: |
| 78 | 78 | # Quartz 配置项,对应 QuartzProperties 配置类 |
| 79 | 79 | spring: |
| 80 | 80 | quartz: |
| 81 | - auto-startup: false # 本地开发环境,尽量不要开启 Job | |
| 81 | + auto-startup: true # 本地开发环境,尽量不要开启 Job | |
| 82 | 82 | scheduler-name: schedulerName # Scheduler 名字。默认为 schedulerName |
| 83 | 83 | job-store-type: jdbc # Job 存储器类型。默认为 memory 表示内存,可选 jdbc 使用数据库。 |
| 84 | 84 | wait-for-jobs-to-complete-on-shutdown: true # 应用关闭时,是否等待定时任务执行完成。默认为 false ,建议设置为 true | ... | ... |