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