xin
2025-08-25 1e730ca08635930f581f37a0d7dc4086e0c65011
oying-system/src/main/java/com/oying/modules/sh/service/impl/OrderOperationLogServiceImpl.java
@@ -2,6 +2,9 @@
import com.alibaba.fastjson2.JSON;
import com.oying.exception.BadRequestException;
import com.oying.modules.message.common.MesTypeEnum;
import com.oying.modules.message.common.MsgStatusEnum;
import com.oying.modules.message.service.MesMsgRecordService;
import com.oying.modules.sh.domain.OrderOperationLog;
import com.oying.modules.sh.domain.vo.OrderResponse;
import com.oying.modules.sh.mapper.OrderMapper;
@@ -35,6 +38,7 @@
    private final OrderOperationLogMapper orderOperationLogMapper;
    private final OrderMapper orderMapper;
    private final MesMsgRecordService mesMsgRecordService;
    @Override
    public PageResult<OrderOperationLog> queryAll(OrderOperationLogQueryCriteria criteria, Page<Object> page) {
@@ -57,17 +61,11 @@
        String userType = ConstantsKey.BUYER;
        String username = null;
        Timestamp time = new Timestamp(System.currentTimeMillis());
        MsgStatusEnum msgStatusEnum = null;
        switch (statusEnum) {
            case NINE:
                if (response.getOrder().getOrderStatus().equals(OrderStatusEnum.NINE.getKey())) {
                    throw new BadRequestException("订单已取消");
                }
                if (response.getOrder().getOrderStatus() > OrderStatusEnum.TWO.getKey()) {
                    throw new BadRequestException(OrderStatusEnum.getValue(response.getOrder().getOrderStatus()));
                }
            case ZERO:
            case ONE:
            case EIGHT:
            case TEN:
                userType = ConstantsKey.BUYER;
                break;
            case TWO:
@@ -90,13 +88,26 @@
                orderOperationLogMapper.insert(log1);
                response.getOrder().setOrderStatus(OrderStatusEnum.TWO.getKey());
                response.getOrder().setOrderStatusDescribe(OrderStatusEnum.TWO.getValue());
            case FOUR:
                userType = ConstantsKey.MERCHANT;
                msgStatusEnum = MsgStatusEnum.MERCHANT_ACCEPTED;
                userType = ConstantsKey.BUYER;
                break;
            case THREE:
                msgStatusEnum = MsgStatusEnum.MERCHANT_PREPARED;
                userType = ConstantsKey.BUYER;
                break;
            case FOUR:
                orderMapper.updateRider(response.getOrder().getOrderNum(), SecurityUtils.getCurrentUserId(), SecurityUtils.getCurrentUsername(), cardName);
                msgStatusEnum = MsgStatusEnum.RIDER_PENDING_ACCEPTANCE;
                userType = ConstantsKey.RIDER;
                break;
            case FIVE:
                msgStatusEnum = MsgStatusEnum.RIDER_ARRIVED;
                userType = ConstantsKey.RIDER;
                break;
            case SIX:
                msgStatusEnum = MsgStatusEnum.RIDER_PICKED_UP;
                userType = ConstantsKey.RIDER;
                break;
            case SEVEN:
                userType = ConstantsKey.RIDER;
                username = SecurityUtils.getCurrentUsername();
@@ -115,9 +126,44 @@
                log2.setOperationTime(time);
                orderOperationLogMapper.insert(log2);
                orderMapper.updateOrderStatus(response.getOrder().getOrderNum(), statusEnum.getKey(), statusEnum.getValue());
                msgStatusEnum = MsgStatusEnum.BUYER_ORDER_DELIVERED;
                statusEnum = OrderStatusEnum.EIGHT;
                break;
            case EIGHT:
                msgStatusEnum = MsgStatusEnum.BUYER_ORDER_COMPLETED;
                userType = ConstantsKey.BUYER;
                break;
            case NINE:
                if (response.getOrder().getOrderStatus().equals(OrderStatusEnum.NINE.getKey())) {
                    throw new BadRequestException("订单已取消");
                }
                if (response.getOrder().getOrderStatus() > OrderStatusEnum.TWO.getKey()) {
                    throw new BadRequestException(OrderStatusEnum.getValue(response.getOrder().getOrderStatus()));
                }
                msgStatusEnum = MsgStatusEnum.RIDER_ORDER_CANCELLED;
                userType = ConstantsKey.BUYER;
                break;
            case ELEVEN:
                userType = ConstantsKey.MERCHANT;
                orderMapper.updateOrderStatus(response.getOrder().getOrderNum(), OrderStatusEnum.EIGHT.getKey(), OrderStatusEnum.EIGHT.getValue());
                break;
            case TWELVE:
                userType = ConstantsKey.BUYER;
                orderMapper.updateOrderStatus(response.getOrder().getOrderNum(), statusEnum.getKey(), statusEnum.getValue());
                break;
            case THIRTEEN:
                userType = ConstantsKey.MERCHANT;
                break;
            case FOURTEEN:
                userType = ConstantsKey.MERCHANT;
                orderMapper.updateOrderStatus(response.getOrder().getOrderNum(), statusEnum.getKey(), statusEnum.getValue());
                break;
            case FIFTEEN:
                userType = ConstantsKey.BUYER;
                orderMapper.updateOrderStatus(response.getOrder().getOrderNum(), OrderStatusEnum.EIGHT.getKey(), OrderStatusEnum.EIGHT.getValue());
                break;
            default:
                throw new BadRequestException("状态错误");
        }
        if (username == null) {
            username = SecurityUtils.getCurrentUsername();
@@ -136,6 +182,9 @@
        resources.setSnapshotData(JSON.toJSONString(map));
        resources.setOperationTime(time);
        orderOperationLogMapper.insert(resources);
        if (msgStatusEnum != null){
            mesMsgRecordService.insertOrderMsg(response.getOrder(), msgStatusEnum, MesTypeEnum.ORDER);
        }
        orderMapper.updateOrderStatus(response.getOrder().getOrderNum(), statusEnum.getKey(), statusEnum.getValue());
    }