From 67ba7d7ed35008438ca0d97fbc9794169265c91a Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期五, 27 二月 2026 17:34:51 +0800
Subject: [PATCH] 订单轨迹实时查询

---
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpOrderController.java |   25 +++++++++++++++++++++++++
 1 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpOrderController.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpOrderController.java
index 39d949e..21c9d3d 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpOrderController.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpOrderController.java
@@ -4,19 +4,23 @@
 import cn.afterturn.easypoi.excel.entity.ExportParams;
 import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.xiaopeng.api.dto.QueryOrderRouteDTO;
 import com.xiaopeng.api.dto.order.GetOrderNumDto;
 import com.xiaopeng.api.dto.order.PopOrderDto;
 import com.xiaopeng.api.dto.statistics.OrderStatisticsDTO;
 import com.xiaopeng.api.dto.statistics.StatisticsQueryDTO;
 import com.xiaopeng.api.model.order.XpOrder;
 import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
+import com.xiaopeng.api.vo.operation.RouteVo;
 import com.xiaopeng.api.vo.order.FareBreakdownVo;
 import com.xiaopeng.api.vo.order.XpHistoryEndPointsVo;
 import com.xiaopeng.api.vo.order.XpHistoryStartPointsVo;
 import com.xiaopeng.api.vo.order.XpPointInfoVo;
+import com.xiaopeng.common.core.constant.CacheConstants;
 import com.xiaopeng.common.core.domain.R;
 import com.xiaopeng.common.core.utils.WebUtils;
 import com.xiaopeng.common.core.web.page.PageInfo;
+import com.xiaopeng.common.redis.service.RedisService;
 import com.xiaopeng.order.mangodb.model.OrderTrajectory;
 import com.xiaopeng.order.model.dto.XpOrderCommentDto;
 import com.xiaopeng.order.model.dto.XpOrderPayDto;
@@ -62,6 +66,7 @@
 public class XpOrderController {
 
     private final IXpOrderService xpOrderService;
+    private final RedisService redisService;
 
     /**
      * 获取订单统计数据(内部接口)
@@ -451,4 +456,24 @@
         return R.ok();
     }
 
+    /**
+     * 订单查询实时轨迹路线
+     */
+    @ApiOperation(value = "订单查询实时轨迹路线")
+    @PostMapping("/api/v1/order/queryOrderRoute")
+    public R<RouteVo> queryOrderRoute(@RequestBody QueryOrderRouteDTO dto) {
+        // 查询订单信息
+        XpOrder xpOrder = xpOrderService.getById(dto.getOrderId());
+        // 封装消息内容
+        Integer routeType = dto.getRouteType();
+        if(routeType == 2){
+            routeType = 3;
+        }else {
+            routeType = xpOrder.getStatus() == 4 ? 1 : 2;
+        }
+        // 获取路线规划
+        RouteVo routeVo = redisService.getCacheObject(CacheConstants.ORDER_ROUTE_CAPTURE + "_" + dto.getOrderId() + "_" +routeType);
+        return R.ok(routeVo);
+    }
+
 }

--
Gitblit v1.7.1