From b59bca62353f93424818a4dd39068b10948c5267 Mon Sep 17 00:00:00 2001
From: yyy <1083599556@qq.com>
Date: 星期三, 06 五月 2026 11:27:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/1.0' into 1.0

---
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpOrderController.java |   60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 56 insertions(+), 4 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 1d86103..d32fd1e 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
@@ -18,10 +18,12 @@
 import com.xiaopeng.api.feignClient.operation.XpWhiteListClient;
 import com.xiaopeng.api.feignClient.vehicleConvoy.VehicleMacClient;
 import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient;
+import com.xiaopeng.api.model.operation.XpOfficialPartner;
 import com.xiaopeng.api.model.operation.XpWhitelist;
 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.NavigationVo;
 import com.xiaopeng.api.vo.operation.NearestNextVo;
 import com.xiaopeng.api.vo.operation.RouteVo;
 import com.xiaopeng.api.vo.order.*;
@@ -32,6 +34,8 @@
 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.common.security.service.TokenService;
+import com.xiaopeng.order.dto.OrderNavigationDto;
 import com.xiaopeng.order.mangodb.model.OrderTrajectory;
 import com.xiaopeng.order.mangodb.service.OrderTrajectoryService;
 import com.xiaopeng.order.model.dto.XpOrderCommentDto;
@@ -49,6 +53,7 @@
 import com.xiaopeng.order.vo.BluetoothTokenVo;
 import com.xiaopeng.order.vo.OrderDetailVo;
 import com.xiaopeng.order.vo.UpdateOrderStatusVo;
+import com.xiaopeng.order.vo.XpOrderInfoVo;
 import com.xiaopeng.unifiedverification.interceptor.XpClientCheck;
 import io.swagger.annotations.*;
 import lombok.RequiredArgsConstructor;
@@ -104,6 +109,9 @@
 
     @Resource
     private XpWhiteListClient xpWhiteListClient;
+
+    @Resource
+    private TokenService tokenService;
 
 
     /**
@@ -808,12 +816,56 @@
 
 
     @PostMapping("/drainage/v1/order/updateOrderStatus")
-    @ApiOperation(value = "更新订单状态", notes = "流量接入-基础信息")
+    @ApiOperation(value = "更新订单状态", notes = "流量接入-订单信息")
     @ApiImplicitParams({
             @ApiImplicitParam(value = "token", name = "token", required = true, paramType = "header")
     })
-    public R<?> officialPartnerUpdateOrderStatus(@RequestBody UpdateOrderStatusVo vo){
-        xpOrderService.officialPartnerUpdateOrderStatus(vo);
-        return R.ok();
+    public R<?> officialPartnerUpdateOrderStatus(@RequestBody UpdateOrderStatusVo vo, HttpServletRequest request){
+        XpOfficialPartner officialPartner = tokenService.getOfficialPartner();
+        return xpOrderService.officialPartnerUpdateOrderStatus(vo, officialPartner.getId());
+    }
+
+
+    @PostMapping("/drainage/v1/order/getOrderNavigation")
+    @ApiOperation(value = "获取订单导航数据", notes = "流量接入-订单信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "token", name = "token", required = true, paramType = "header")
+    })
+    public R<NavigationVo> getOrderNavigation(@RequestBody OrderNavigationDto dto, HttpServletRequest request){
+        XpOfficialPartner officialPartner = tokenService.getOfficialPartner();
+        XpOrder xpOrder = xpOrderService.getById(dto.getOrderId());
+        if(!xpOrder.getOfficialPartnerId().equals(officialPartner.getId())){
+            return R.fail("无权限");
+        }
+        NavigationVo navigationVo = null;
+        if(1 == dto.getNavigationType()){
+            Object cacheObject = redisService.getCacheObject("ORDER_NAVIGATION_START_DATA:" + xpOrder.getAppUserId());
+            if(null != cacheObject){
+                navigationVo = JSON.parseObject(cacheObject.toString(), NavigationVo.class);
+            }
+        }
+        if(2 == dto.getNavigationType()){
+            Object cacheObject = redisService.getCacheObject("ORDER_NAVIGATION_END_DATA:" + xpOrder.getAppUserId());
+            if(null != cacheObject){
+                navigationVo = JSON.parseObject(cacheObject.toString(), NavigationVo.class);
+            }
+        }
+        return R.ok(navigationVo);
+    }
+
+
+    @PostMapping("/drainage/v1/order/getOrderInfo")
+    @ApiOperation(value = "获取订单详情", notes = "流量接入-订单信息")
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "token", name = "token", required = true, paramType = "header")
+    })
+    public R<XpOrderInfoVo> getOfficialPartnerOrderInfo(@PathVariable Long orderId){
+        XpOfficialPartner officialPartner = tokenService.getOfficialPartner();
+        XpOrder xpOrder = xpOrderService.getById(orderId);
+        if(!xpOrder.getOfficialPartnerId().equals(officialPartner.getId())){
+            return R.fail("无权限");
+        }
+        XpOrderInfoVo xpOrderInfoVo = BeanUtil.copyProperties(xpOrder, XpOrderInfoVo.class);
+        return R.ok(xpOrderInfoVo);
     }
 }
\ No newline at end of file

--
Gitblit v1.7.1