From 74bded7f4e6342bac56c81208e0926ac650fd4ad Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期六, 07 三月 2026 21:12:00 +0800
Subject: [PATCH] 推送实时轨迹修改

---
 xp-robotaxi-pushMessage-boot/src/main/java/com/xiaopeng/pushMessage/controller/PushOrderRouteController.java |   16 ++++++++++++++--
 1 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/xp-robotaxi-pushMessage-boot/src/main/java/com/xiaopeng/pushMessage/controller/PushOrderRouteController.java b/xp-robotaxi-pushMessage-boot/src/main/java/com/xiaopeng/pushMessage/controller/PushOrderRouteController.java
index 588b865..bdcb061 100644
--- a/xp-robotaxi-pushMessage-boot/src/main/java/com/xiaopeng/pushMessage/controller/PushOrderRouteController.java
+++ b/xp-robotaxi-pushMessage-boot/src/main/java/com/xiaopeng/pushMessage/controller/PushOrderRouteController.java
@@ -32,6 +32,8 @@
     private RedisService redisService;
     @Autowired
     private XpPushMessageClient xpPushMessageClient;
+    @Autowired
+    private XpOrderClient xpOrderClient;
 
     /**
      * 通过定位推送订单轨迹
@@ -40,9 +42,13 @@
     @PostMapping("/inner/v1/order/pushOrderRoute")
     public R<String> pushOrderRoute(@Validated @RequestBody PushOrderRouteDTO dto) {
 
+        // 获取路线规划
         RouteVo routeVo = redisService.getCacheObject(CacheConstants.ORDER_ROUTE_CAPTURE + "_" + dto.getOrderId() + "_" +dto.getRouteType());
 
         if(Objects.nonNull(routeVo)){
+
+            // 查询订单信息
+            XpOrder xpOrder = xpOrderClient.queryOrderById(dto.getOrderId()).getData();
 
             // 计算实时点位到线段的最优截取
             List<LonLatDto> lonLatDtos = MapMatchingUtil.clipBySegmentDistance(routeVo.getPolyline(), new LonLatDto(dto.getLongitude(), dto.getLatitude()));
@@ -67,9 +73,15 @@
             route.put("polyline",JSONObject.toJSONString(polyline));
 
             // 封装消息内容
+            Integer routeType = dto.getRouteType();
+            if(routeType == 2){
+                routeType = 3;
+            }else {
+                routeType = xpOrder.getStatus() == 4 ? 1 : 2;
+            }
             Map<String, Object> content = new HashMap<>();
             content.put("orderId",dto.getOrderId());
-            content.put("routeType",dto.getRouteType());
+            content.put("routeType",routeType);
             content.put("route",JSONObject.toJSONString(route));
 
             // 封装轨迹信息
@@ -80,7 +92,7 @@
 
             // 进行消息推送
             SendMessageDTO sendMessageDTO = new SendMessageDTO();
-            sendMessageDTO.setAppUserId(String.valueOf(dto.getAppUserId()));
+            sendMessageDTO.setAppUserId(String.valueOf(xpOrder.getAppUserId()));
             sendMessageDTO.setMessage(JSONObject.toJSONString(params));
             xpPushMessageClient.sendRoute(sendMessageDTO);
         }

--
Gitblit v1.7.1