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