From 7a9f21a4b35d85112ca7e653e3df179be199406f Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期一, 02 三月 2026 10:35:51 +0800
Subject: [PATCH] 处理内部调用多语言报错问题

---
 xp-robotaxi-remote-driving-boot/src/main/java/com/xiaopeng/remoteDriving/config/MyLocaleResolver.java             |    1 
 xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/config/MyLocaleResolver.java             |    1 
 xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/config/MyLocaleResolver.java           |    1 
 xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/config/MyLocaleResolver.java                  |    4 
 xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/config/MyLocaleResolver.java                                  |    1 
 xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/config/MyLocaleResolver.java                 |  161 ++++++++++++++++----------------
 xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/config/MyLocaleResolver.java                          |    1 
 xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/config/MyLocaleResolver.java                      |    6 
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/config/MyLocaleResolver.java                              |    2 
 xp-robotaxi-payment-boot/src/main/java/com/xiaopeng/payment/config/MyLocaleResolver.java                          |    1 
 xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java |   64 +++++++++---
 11 files changed, 135 insertions(+), 108 deletions(-)

diff --git a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/config/MyLocaleResolver.java b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/config/MyLocaleResolver.java
index 00bae7b..366e8b2 100644
--- a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/config/MyLocaleResolver.java
+++ b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/config/MyLocaleResolver.java
@@ -23,6 +23,7 @@
         Locale locale = null;
         if (StringUtils.isEmpty(language)) {
             locale = Locale.getDefault();
+            language = "1";
         }
         //如果请求不为空 
         //If the request is not empty.
diff --git a/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/config/MyLocaleResolver.java b/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/config/MyLocaleResolver.java
index 8a21328..63873de 100644
--- a/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/config/MyLocaleResolver.java
+++ b/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/config/MyLocaleResolver.java
@@ -23,6 +23,7 @@
         Locale locale = null;
         if (StringUtils.isEmpty(language)) {
             locale = Locale.getDefault();
+            language = "1";
         }
         //如果请求不为空 
         //If the request is not empty.
diff --git a/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java b/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java
index 6102a1f..5a6b3f0 100644
--- a/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java
+++ b/xp-robotaxi-automatic-pilot-boot/src/main/java/com/xiaopeng/automaticPilot/controller/OrderMissionController.java
@@ -153,9 +153,22 @@
      * @return
      */
     @GetMapping("/base/v1/order/acceptingOrder")
-    public R acceptingOrder(Long orderId, Long vehicleId, Double startLon, Double startLat){
+    public R acceptingOrder(Long orderId, String code, Long vehicleId, Double startLon, Double startLat){
+        if(null == vehicleId){
+            vehicleId = 1L;
+        }
+        if(null == startLat || null == startLon){
+            startLat = 23.157155D;
+            startLon = 113.382373D;
+        }
         XpVehicle xpVehicle = xpVehicleClient.queryById(vehicleId).getData();
-        XpOrder xpOrder = xpOrderClient.queryOrderById(orderId).getData();
+        XpOrder xpOrder = null;
+        if(null != orderId){
+            xpOrder = xpOrderClient.queryOrderById(orderId).getData();
+        }
+        if(StringUtils.isNotEmpty(code)){
+            xpOrder = xpOrderClient.queryOrderByOrderNo(code).getData();
+        }
         OrderRouteAndFareDto dto = new OrderRouteAndFareDto();
         dto.setOrderId(orderId);
         LonLatDto origin = new LonLatDto();
@@ -199,17 +212,6 @@
             log.error("推送消息失败:{}", stringR.getMsg());
         }
         xpOrderClient.updateOrderStatus(orderId, OrderStatusEnum.PICK_UP.getCode());
-
-//        PushOrderRouteDTO dto3 = new PushOrderRouteDTO();
-//        dto3.setOrderId(orderId);
-//        dto3.setRouteType(1);
-//        dto3.setLongitude(startLon);
-//        dto3.setLatitude(startLat);
-//        dto3.setDuration(10);
-//        dto3.setDistance(2);
-//        dto3.setDirection(60);
-//        xpPushMessageClient.pushOrderRoute(dto3);
-
         return r;
     }
 
@@ -219,9 +221,18 @@
      * @param orderId
      */
     @GetMapping("/base/v1/order/pushStartDriverLocation")
-    private void pushStartDriverLocation(Long vehicleId, Long orderId){
+    private void pushStartDriverLocation(Long vehicleId, Long orderId, String code){
+        if(null == vehicleId){
+            vehicleId = 1L;
+        }
         XpVehicle xpVehicle = xpVehicleClient.queryById(vehicleId).getData();
-        XpOrder xpOrder = xpOrderClient.queryOrderById(orderId).getData();
+        XpOrder xpOrder = null;
+        if(null != orderId){
+            xpOrder = xpOrderClient.queryOrderById(orderId).getData();
+        }
+        if(StringUtils.isNotEmpty(code)){
+            xpOrder = xpOrderClient.queryOrderByOrderNo(code).getData();
+        }
         String vin = xpVehicle.getVehicleVin();
         Long appUserId = xpOrder.getAppUserId();
         Object cacheObject = redisService.getCacheObject("ORDER_NAVIGATION_START_DATA:" + xpOrder.getAppUserId());
@@ -309,8 +320,14 @@
      * @return
      */
     @GetMapping("/base/v1/order/updateOrderStatus")
-    public R updateOrderStatus(Long orderId, Integer status) {
-        XpOrder xpOrder = xpOrderClient.queryOrderById(orderId).getData();
+    public R updateOrderStatus(Long orderId, String code, Integer status) {
+        XpOrder xpOrder = null;
+        if(null != orderId){
+            xpOrder = xpOrderClient.queryOrderById(orderId).getData();
+        }
+        if(StringUtils.isNotEmpty(code)){
+            xpOrder = xpOrderClient.queryOrderByOrderNo(code).getData();
+        }
         //构建推送消息
         Map<String, Object> params = new HashMap<>();
         Map<String, Object> content = new HashMap<>();
@@ -368,9 +385,18 @@
      * @param orderId
      */
     @GetMapping("/base/v1/order/pushEndDriverLocation")
-    private void pushEndDriverLocation(Long vehicleId, Long orderId){
+    private void pushEndDriverLocation(Long vehicleId, Long orderId, String code){
+        if(null == vehicleId){
+            vehicleId = 1L;
+        }
         XpVehicle xpVehicle = xpVehicleClient.queryById(vehicleId).getData();
-        XpOrder xpOrder = xpOrderClient.queryOrderById(orderId).getData();
+        XpOrder xpOrder = null;
+        if(null != orderId){
+            xpOrder = xpOrderClient.queryOrderById(orderId).getData();
+        }
+        if(StringUtils.isNotEmpty(code)){
+            xpOrder = xpOrderClient.queryOrderByOrderNo(code).getData();
+        }
         String vin = xpVehicle.getVehicleVin();
         Long appUserId = xpOrder.getAppUserId();
         Object cacheObject = redisService.getCacheObject("ORDER_NAVIGATION_END_DATA:" + xpOrder.getAppUserId());
diff --git a/xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/config/MyLocaleResolver.java b/xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/config/MyLocaleResolver.java
index 248c386..31e0233 100644
--- a/xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/config/MyLocaleResolver.java
+++ b/xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/config/MyLocaleResolver.java
@@ -23,11 +23,9 @@
         Locale locale = null;
         if (StringUtils.isEmpty(language)) {
             locale = Locale.getDefault();
+            language = "1";
         }
-        if(language==null){
-            language="1";
-        }
-        //如果请求不为空 
+        //如果请求不为空
         //If the request is not empty.
         if (language.equals("1")) {
             locale = new Locale("zh", "CN");
diff --git a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/config/MyLocaleResolver.java b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/config/MyLocaleResolver.java
index e533894..53c517a 100644
--- a/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/config/MyLocaleResolver.java
+++ b/xp-robotaxi-maintenance-boot/src/main/java/com/xiaopeng/maintenance/config/MyLocaleResolver.java
@@ -23,12 +23,10 @@
         Locale locale = null;
         if (StringUtils.isEmpty(language)) {
             locale = Locale.getDefault();
+            language = "1";
         }
         //如果请求不为空 
         //If the request is not empty.
-        if(null == language){
-            language = "1";
-        }
         if (language.equals("1")) {
             locale = new Locale("zh", "CN");
         } else if (language.equals("2")) {
diff --git a/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/config/MyLocaleResolver.java b/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/config/MyLocaleResolver.java
index d16fa53..da55b50 100644
--- a/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/config/MyLocaleResolver.java
+++ b/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/config/MyLocaleResolver.java
@@ -23,6 +23,7 @@
         Locale locale = null;
         if (StringUtils.isEmpty(language)) {
             locale = Locale.getDefault();
+            language = "1";
         }
         //如果请求不为空 
         //If the request is not empty.
diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/config/MyLocaleResolver.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/config/MyLocaleResolver.java
index 0ee8058..da6c85b 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/config/MyLocaleResolver.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/config/MyLocaleResolver.java
@@ -23,8 +23,6 @@
         Locale locale = null;
         if (StringUtils.isEmpty(language)) {
             locale = Locale.getDefault();
-        }
-        if (!StringUtils.hasLength(language)){
             language = "1";
         }
         //如果请求不为空 
diff --git a/xp-robotaxi-payment-boot/src/main/java/com/xiaopeng/payment/config/MyLocaleResolver.java b/xp-robotaxi-payment-boot/src/main/java/com/xiaopeng/payment/config/MyLocaleResolver.java
index 2f8caed..7749118 100644
--- a/xp-robotaxi-payment-boot/src/main/java/com/xiaopeng/payment/config/MyLocaleResolver.java
+++ b/xp-robotaxi-payment-boot/src/main/java/com/xiaopeng/payment/config/MyLocaleResolver.java
@@ -23,6 +23,7 @@
         Locale locale = null;
         if (StringUtils.isEmpty(language)) {
             locale = Locale.getDefault();
+            language = "1";
         }
         //如果请求不为空 
         //If the request is not empty.
diff --git a/xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/config/MyLocaleResolver.java b/xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/config/MyLocaleResolver.java
index 7a0dab8..4469f43 100644
--- a/xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/config/MyLocaleResolver.java
+++ b/xp-robotaxi-push-message-boot/src/main/java/com/xiaopeng/pushMessage/config/MyLocaleResolver.java
@@ -1,80 +1,81 @@
-//package com.xiaopeng.pushMessage.config;
-//
-//import com.alibaba.fastjson.JSON;
-//import com.alibaba.fastjson.JSONObject;
-//import org.springframework.util.StringUtils;
-//import org.springframework.web.servlet.LocaleResolver;
-//
-//import javax.servlet.ServletInputStream;
-//import javax.servlet.http.HttpServletRequest;
-//import javax.servlet.http.HttpServletResponse;
-//import java.io.BufferedReader;
-//import java.io.InputStreamReader;
-//import java.util.Locale;
-//
-//public class MyLocaleResolver implements LocaleResolver {
-//
-//    @Override
-//    public Locale resolveLocale(HttpServletRequest request) {
-//        //1=中文,2=英文,3=印尼文
-//        //1=Chinese, 2=English, 3=Indonesian.
-//        String language = getQueryParams(request, "language");
-//
-//        Locale locale = null;
-//        if (StringUtils.isEmpty(language)) {
-//            locale = Locale.getDefault();
-//        }
-//        //如果请求不为空
-//        //If the request is not empty.
-//        if (language.equals("1")) {
-//            locale = new Locale("zh", "CN");
-//        } else if (language.equals("2")) {
-//            locale = new Locale("en", "US");
-//        }
-//        return locale;
-//    }
-//
-//    @Override
-//    public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {
-//    }
-//
-//
-//    public String getQueryParams(HttpServletRequest request, String key) {
-//        try {
-//            String method = request.getMethod();
-//            if("POST".equals(method)){
-//                String parameter = request.getParameter(key);
-//                if(!StringUtils.isEmpty(parameter)){
-//                    return parameter;
-//                }
-//                Object attribute = request.getAttribute(key);
-//                if(null != attribute){
-//                    return attribute.toString();
-//                }
-//                StringBuffer sb = new StringBuffer();
-//                ServletInputStream inputStream = request.getInputStream();
-//                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
-//                String s;
-//                while ((s = bufferedReader.readLine()) != null){
-//                    sb.append(s);
-//                }
-//                bufferedReader.close();
-//                inputStream.close();
-//                JSONObject jsonObject = JSON.parseObject(sb.toString());
-//                return jsonObject.getString(key);
-//            }else{
-//                String parameter = request.getParameter(key);
-//                if(!StringUtils.isEmpty(parameter)){
-//                    return parameter;
-//                }
-//                Object attribute = request.getAttribute(key);
-//                if(null != attribute){
-//                    return attribute.toString();
-//                }
-//            }
-//        }catch (Exception e){
-//            e.printStackTrace();
-//        }
-//        return null;
-//    }
-//}
+package com.xiaopeng.pushMessage.config;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import org.springframework.util.StringUtils;
+import org.springframework.web.servlet.LocaleResolver;
+
+import javax.servlet.ServletInputStream;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.util.Locale;
+
+public class MyLocaleResolver implements LocaleResolver {
+
+    @Override
+    public Locale resolveLocale(HttpServletRequest request) {
+        //1=中文,2=英文,3=印尼文
+        //1=Chinese, 2=English, 3=Indonesian.
+        String language = getQueryParams(request, "language");
+
+        Locale locale = null;
+        if (StringUtils.isEmpty(language)) {
+            locale = Locale.getDefault();
+            language = "1";
+        }
+        //如果请求不为空
+        //If the request is not empty.
+        if (language.equals("1")) {
+            locale = new Locale("zh", "CN");
+        } else if (language.equals("2")) {
+            locale = new Locale("en", "US");
+        }
+        return locale;
+    }
+
+    @Override
+    public void setLocale(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Locale locale) {
+    }
+
+
+    public String getQueryParams(HttpServletRequest request, String key) {
+        try {
+            String method = request.getMethod();
+            if("POST".equals(method)){
+                String parameter = request.getParameter(key);
+                if(!StringUtils.isEmpty(parameter)){
+                    return parameter;
+                }
+                Object attribute = request.getAttribute(key);
+                if(null != attribute){
+                    return attribute.toString();
+                }
+                StringBuffer sb = new StringBuffer();
+                ServletInputStream inputStream = request.getInputStream();
+                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
+                String s;
+                while ((s = bufferedReader.readLine()) != null){
+                    sb.append(s);
+                }
+                bufferedReader.close();
+                inputStream.close();
+                JSONObject jsonObject = JSON.parseObject(sb.toString());
+                return jsonObject.getString(key);
+            }else{
+                String parameter = request.getParameter(key);
+                if(!StringUtils.isEmpty(parameter)){
+                    return parameter;
+                }
+                Object attribute = request.getAttribute(key);
+                if(null != attribute){
+                    return attribute.toString();
+                }
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return null;
+    }
+}
diff --git a/xp-robotaxi-remote-driving-boot/src/main/java/com/xiaopeng/remoteDriving/config/MyLocaleResolver.java b/xp-robotaxi-remote-driving-boot/src/main/java/com/xiaopeng/remoteDriving/config/MyLocaleResolver.java
index 2193a1f..062c127 100644
--- a/xp-robotaxi-remote-driving-boot/src/main/java/com/xiaopeng/remoteDriving/config/MyLocaleResolver.java
+++ b/xp-robotaxi-remote-driving-boot/src/main/java/com/xiaopeng/remoteDriving/config/MyLocaleResolver.java
@@ -23,6 +23,7 @@
         Locale locale = null;
         if (StringUtils.isEmpty(language)) {
             locale = Locale.getDefault();
+            language = "1";
         }
         //如果请求不为空 
         //If the request is not empty.
diff --git a/xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/config/MyLocaleResolver.java b/xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/config/MyLocaleResolver.java
index 19dc150..3a35c67 100644
--- a/xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/config/MyLocaleResolver.java
+++ b/xp-robotaxi-vehicle-convoy-boot/src/main/java/com/xiaopeng/vehicleConvoy/config/MyLocaleResolver.java
@@ -23,6 +23,7 @@
         Locale locale = null;
         if (StringUtils.isEmpty(language)) {
             locale = Locale.getDefault();
+            language = "1";
         }
         //如果请求不为空
         //If the request is not empty.

--
Gitblit v1.7.1