mirror of
				https://gitee.com/hhyykk/ipms-sjy.git
				synced 2025-11-04 20:28:44 +08:00 
			
		
		
		
	trade:发货逻辑,增加订单日志
This commit is contained in:
		@@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.trade.service.order;
 | 
			
		||||
 | 
			
		||||
import cn.hutool.core.collection.CollUtil;
 | 
			
		||||
import cn.hutool.core.lang.Assert;
 | 
			
		||||
import cn.hutool.core.map.MapUtil;
 | 
			
		||||
import cn.hutool.core.util.ObjectUtil;
 | 
			
		||||
import cn.hutool.core.util.RandomUtil;
 | 
			
		||||
import cn.hutool.core.util.StrUtil;
 | 
			
		||||
@@ -40,6 +41,7 @@ import cn.iocoder.yudao.module.trade.controller.app.order.vo.AppTradeOrderSettle
 | 
			
		||||
import cn.iocoder.yudao.module.trade.controller.app.order.vo.item.AppTradeOrderItemCommentCreateReqVO;
 | 
			
		||||
import cn.iocoder.yudao.module.trade.convert.order.TradeOrderConvert;
 | 
			
		||||
import cn.iocoder.yudao.module.trade.dal.dataobject.cart.CartDO;
 | 
			
		||||
import cn.iocoder.yudao.module.trade.dal.dataobject.delivery.DeliveryExpressDO;
 | 
			
		||||
import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderDO;
 | 
			
		||||
import cn.iocoder.yudao.module.trade.dal.dataobject.order.TradeOrderItemDO;
 | 
			
		||||
import cn.iocoder.yudao.module.trade.dal.mysql.order.TradeOrderItemMapper;
 | 
			
		||||
@@ -412,6 +414,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
			
		||||
 | 
			
		||||
    @Override
 | 
			
		||||
    @Transactional(rollbackFor = Exception.class)
 | 
			
		||||
    @TradeOrderLog(operateType = TradeOrderOperateTypeEnum.MEMBER_CANCEL)
 | 
			
		||||
    public void deliveryOrder(TradeOrderDeliveryReqVO deliveryReqVO) {
 | 
			
		||||
        // 1.1 校验并获得交易订单(可发货)
 | 
			
		||||
        TradeOrderDO order = validateOrderDeliverable(deliveryReqVO.getId());
 | 
			
		||||
@@ -423,8 +426,9 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
			
		||||
        // 2. 更新订单为已发货
 | 
			
		||||
        TradeOrderDO updateOrderObj = new TradeOrderDO();
 | 
			
		||||
        // 2.1 快递发货
 | 
			
		||||
        DeliveryExpressDO express = null;
 | 
			
		||||
        if (ObjectUtil.notEqual(deliveryReqVO.getLogisticsId(), TradeOrderDO.LOGISTICS_ID_NULL)) {
 | 
			
		||||
            deliveryExpressService.validateDeliveryExpress(deliveryReqVO.getLogisticsId());
 | 
			
		||||
            express = deliveryExpressService.validateDeliveryExpress(deliveryReqVO.getLogisticsId());
 | 
			
		||||
            updateOrderObj.setLogisticsId(deliveryReqVO.getLogisticsId()).setLogisticsNo(deliveryReqVO.getLogisticsNo());
 | 
			
		||||
        } else {
 | 
			
		||||
            // 2.2 无需发货
 | 
			
		||||
@@ -437,11 +441,14 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
			
		||||
            throw exception(ORDER_DELIVERY_FAIL_STATUS_NOT_UNDELIVERED);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // 发送站内信
 | 
			
		||||
        // 3. 记录订单日志
 | 
			
		||||
        TradeOrderLogUtils.setOrderInfo(order.getId(), order.getStatus(), TradeOrderStatusEnum.DELIVERED.getStatus(),
 | 
			
		||||
                MapUtil.<String, Object>builder().put("expressName", express != null ? express.getName() : "")
 | 
			
		||||
                        .put("logisticsNo", express != null ? deliveryReqVO.getLogisticsNo() : "").build());
 | 
			
		||||
 | 
			
		||||
        // 4. 发送站内信
 | 
			
		||||
        tradeMessageService.sendMessageWhenDeliveryOrder(new TradeOrderMessageWhenDeliveryOrderReqBO().setOrderId(order.getId())
 | 
			
		||||
                .setUserId(order.getUserId()).setMessage(null));
 | 
			
		||||
 | 
			
		||||
        // TODO 芋艿:OrderLog
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -468,6 +475,7 @@ public class TradeOrderUpdateServiceImpl implements TradeOrderUpdateService {
 | 
			
		||||
        // 订单类类型:砍价
 | 
			
		||||
        if (Objects.equals(TradeOrderTypeEnum.BARGAIN.getType(), order.getType())) {
 | 
			
		||||
            // 校验订单砍价是否成功
 | 
			
		||||
            // TODO @puhui999:砍价的话,应该不用校验。因为是砍价成功后,才可以下单
 | 
			
		||||
            if (!bargainRecordApi.isBargainRecordSuccess(order.getUserId(), order.getId())) {
 | 
			
		||||
                throw exception(ORDER_DELIVERY_FAIL_BARGAIN_RECORD_STATUS_NOT_SUCCESS);
 | 
			
		||||
            }
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user