From 7adc1e5089f8d9bca903a345a2eaad2afbd52589 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期五, 17 四月 2026 21:02:39 +0800
Subject: [PATCH] 合并代码

---
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/ActiveOrderController.java |   33 +++++++++++++++++++++++++++++----
 1 files changed, 29 insertions(+), 4 deletions(-)

diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/ActiveOrderController.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/ActiveOrderController.java
index ab0caa8..0636d37 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/ActiveOrderController.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/ActiveOrderController.java
@@ -1,13 +1,16 @@
 package com.xiaopeng.order.controller;
 
+import com.alibaba.fastjson2.JSON;
 import com.xiaopeng.api.dto.QueryOrderRouteDTO;
 import com.xiaopeng.api.feignClient.operation.XpPointClient;
 import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient;
 import com.xiaopeng.api.model.operation.XpPoint;
 import com.xiaopeng.api.model.order.XpOrder;
 import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
+import com.xiaopeng.api.vo.automaticPilot.VehiclePosition;
 import com.xiaopeng.api.vo.operation.RouteVo;
 import com.xiaopeng.common.core.domain.R;
+import com.xiaopeng.common.redis.service.RedisService;
 import com.xiaopeng.order.model.vo.XpOrderDetailVO;
 import com.xiaopeng.order.service.IXpOrderService;
 import com.xiaopeng.unifiedverification.interceptor.XpClientCheck;
@@ -20,7 +23,10 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Lazy;
 import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -46,6 +52,8 @@
     private final XpPointClient xpPointClient;
     @Resource
     private final XpVehicleClient xpVehicleClient;
+    @Resource
+    private RedisService redisService;
 
     @Nullable
     private R<XpOrder> getOrderTripEnd(String orderId) {
@@ -67,9 +75,9 @@
      * 分享行程接口1-订单查询实时轨迹路线
      */
     @ApiOperation(value = "分享行程接口1 订单查询实时轨迹路线")
-    @GetMapping("/base/v1/mini-program/orderActive/share/queryOrderRoute")
+    @GetMapping("/base/v1/mini-program/orderActive/share/queryOrderRoute/{orderId}")
     @XpClientCheck(checkToken = false, checkOtpToken = false)
-    public R<RouteVo> queryOrderRoute(@RequestParam String orderId, HttpServletRequest request) {
+    public R<RouteVo> queryOrderRoute(@PathVariable("orderId") String orderId, HttpServletRequest request) {
         // 查询订单信息
         if(StringUtils.isBlank(orderId) ){
             return R.fail("参数不能为空");
@@ -78,8 +86,25 @@
         if (r != null && r.getCode() != 200) {
             return r;
         }
-        QueryOrderRouteDTO dto = new QueryOrderRouteDTO();
-        return xpOrderController.queryOrderRoute(dto,request);
+
+        // 查询订单信息
+        XpOrder xpOrder = xpOrderService.getById(orderId);
+
+        String key = "";
+        //接驾情况,获取车辆位置到起点的导航
+        if (xpOrder.getStatus() < 5) {
+            key = "ORDER_NAVIGATION_START_DATA:" + xpOrder.getAppUserId();
+        }
+        //服务中,获取起点到终点的导航数据
+        if (xpOrder.getStatus() >= 5) {
+            key = "ORDER_NAVIGATION_END_DATA:" + xpOrder.getAppUserId();
+        }
+        Object cacheObject = redisService.getCacheObject(key);
+        RouteVo routeVo = JSON.parseObject(cacheObject.toString(), RouteVo.class);
+        XpVehicle xpVehicle = xpVehicleClient.queryById(xpOrder.getVehicleId()).getData();
+        VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(xpVehicle.getVehicleVin())), VehiclePosition.class);
+        routeVo.setDirection(null != vehiclePosition ? vehiclePosition.getCourse() : 90);
+        return R.ok(routeVo);
     }
 
     /**

--
Gitblit v1.7.1