liujie
2026-02-13 3b5a2830f5d450706c279ba8bf38feffa5e30171
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -30,6 +30,7 @@
import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient;
import com.xiaopeng.api.model.account.XpAppUser;
import com.xiaopeng.api.model.operation.XpGeoQueryEntity;
import com.xiaopeng.api.model.operation.XpFeedbackType;
import com.xiaopeng.api.model.operation.XpPoint;
import com.xiaopeng.api.model.order.XpOrder;
import com.xiaopeng.api.model.order.XpOrderCancel;
@@ -71,6 +72,8 @@
import com.xiaopeng.order.service.IXpOrderReassignService;
import com.xiaopeng.order.service.IXpOrderService;
import com.xiaopeng.order.utils.holiday.HolidayUtil;
import com.xiaopeng.order.vo.OrderDetailVo;
import io.swagger.annotations.ApiModelProperty;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.shardingsphere.transaction.core.TransactionType;
@@ -917,6 +920,8 @@
            userVehicleClient.cancelTaxiPassenger(cancelTaxiPassengerVo);
        }
        // 计算起步价
//        // 计算实际价格
//        // 根据订单所属开通城市id 查询定价
//        R<XpPricing> pricingByCityId = xpPricingClient.getPricingByCityId(order.getCityId());
@@ -1592,6 +1597,38 @@
        }
    }
    @Override
    public OrderDetailVo orderDetail(Long orderId, String uid) {
        OrderDetailVo orderDetailVo = new OrderDetailVo();
        XpOrder order = this.getById(orderId);
        BeanUtils.copyProperties(order, orderDetailVo);
        // 查询车辆信息
        XpVehicle vehicle = xpVehicleClient.queryById(order.getVehicleId()).getData();
        if (vehicle!=null){
            orderDetailVo.setVehicleCode(vehicle.getVehicleCode());
            orderDetailVo.setPlateNumber(vehicle.getPlateNumber());
            orderDetailVo.setVehicleColor(vehicle.getVehicleColor());
            orderDetailVo.setVehiclePictures(vehicle.getVehiclePictures());
        }
        // 查询评价信息
        XpOrderEvaluate evaluate = xpOrderEvaluateService.lambdaQuery().eq(XpOrderEvaluate::getOrderId, orderId)
                .last("limit 1").one();
        if (evaluate != null) {
            orderDetailVo.setFeedbackPictures(evaluate.getFeedbackPictures());
            orderDetailVo.setFeedbackContent(evaluate.getFeedbackContent());
            orderDetailVo.setOrderRating(evaluate.getOrderRating());
            XpFeedbackType feedbackType = xpSystemSettingClient.getFeedbackTypeById(evaluate.getFeedbackTypeId()).getData();
            orderDetailVo.setFeedbackTypeName(feedbackType.getFeedbackType());
        }
        List<OrderTrajectory> trajectories = mongoTemplate.find(
                new Query(Criteria.where("orderId").is(orderId))
                        .with(Sort.by(Sort.Direction.ASC, "locatetime")),
                OrderTrajectory.class
        );
        orderDetailVo.setTrajectories(trajectories);
        return orderDetailVo;
    }
    /**
     * 成功操作下发命令后调用 用于弹出redis队列的获取成功的数据