From 7337d6b1a7eb87b858f30fafd41bbea14f148921 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 27 二月 2026 09:09:34 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java |   52 +++++++++++++++++++++++++++++-----------------------
 1 files changed, 29 insertions(+), 23 deletions(-)

diff --git a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
index 927b1ce..60adbbf 100644
--- a/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
+++ b/xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -4,7 +4,7 @@
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSONArray;
-import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson2.JSONObject;
 import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -12,6 +12,7 @@
 import com.google.common.collect.ImmutableMap;
 import com.xiaopeng.api.dto.account.GetUserCouponDto;
 import com.xiaopeng.api.dto.account.UseUserCouponDto;
+import com.xiaopeng.api.dto.account.UserResourcesDto;
 import com.xiaopeng.api.dto.automaticPilot.PushOrderDto;
 import com.xiaopeng.api.dto.operation.LonLatDto;
 import com.xiaopeng.api.dto.order.GetOrderNumDto;
@@ -23,6 +24,7 @@
 import com.xiaopeng.api.dto.statistics.OrderStatisticsDTO;
 import com.xiaopeng.api.dto.statistics.StatisticsQueryDTO;
 import com.xiaopeng.api.dto.vehicleConvoy.BaseVehicleUserDto;
+import com.xiaopeng.api.feignClient.account.UserResourcesClient;
 import com.xiaopeng.api.feignClient.account.XpAppUserClient;
 import com.xiaopeng.api.feignClient.account.XpAppUserCouponClient;
 import com.xiaopeng.api.feignClient.automaticPilot.OrderMissionClient;
@@ -43,6 +45,7 @@
 import com.xiaopeng.api.model.vehicleConvoy.XpFleet;
 import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
 import com.xiaopeng.api.vo.OrderType;
+import com.xiaopeng.api.vo.account.GetUserListByUidsVo;
 import com.xiaopeng.api.vo.account.UserCouponVo;
 import com.xiaopeng.api.vo.automaticPilot.proto.down.cloudOrderOperation.OrderOperationType;
 import com.xiaopeng.api.vo.operation.RouteVo;
@@ -50,6 +53,7 @@
 import com.xiaopeng.api.vo.vehicleConvoy.AddTaxiPassengerVo;
 import com.xiaopeng.api.vo.vehicleConvoy.CancelTaxiPassengerVo;
 import com.xiaopeng.common.core.constant.CacheConstants;
+import com.xiaopeng.common.core.constant.HttpStatus;
 import com.xiaopeng.common.core.domain.R;
 import com.xiaopeng.common.core.enums.OrderStatusEnum;
 import com.xiaopeng.common.core.enums.PushMessageTypeEnum;
@@ -122,7 +126,7 @@
 @RequiredArgsConstructor(onConstructor_ = @Lazy)
 public class XpOrderServiceImpl extends ServiceImpl<XpOrderMapper, XpOrder> implements IXpOrderService {
 
-    private final XpAppUserClient xpAppUserClient;
+    private final UserResourcesClient userResourcesClient;
     private final XpPointClient xpPointClient;
     private final XpVehicleClient xpVehicleClient;
     private final XpAppUserCouponClient xpAppUserCouponClient;
@@ -212,13 +216,13 @@
         }
 
         // 4. 批量查询关联数据
-        Map<Long, XpAppUser> userMap = batchGetUsers(userIds);
+        JSONObject jsonObject = batchGetUsers(userIds);
         Map<Long, XpVehicle> vehicleMap = batchGetVehicles(vehicleIds);
         Map<Long, XpFleet> fleetMap = batchGetFleets(fleetIds);
 
         // 5. 组装 VO
         List<XpOrderPageVO> voList = pageResult.getRecords().stream()
-                .map(order -> convertToPageVO(order, userMap, vehicleMap, fleetMap))
+                .map(order -> convertToPageVO(order, jsonObject, vehicleMap, fleetMap))
                 .collect(Collectors.toList());
 
         // 6. 返回分页结果
@@ -241,11 +245,11 @@
 
         // 3. 获取用户信息
         if (Objects.nonNull(order.getAppUserId())) {
-            Map<Long, XpAppUser> userMap = batchGetUsers(Collections.singleton(order.getAppUserId()));
-            XpAppUser user = userMap.get(order.getAppUserId());
-            if (Objects.nonNull(user)) {
-                vo.setNickName(user.getNickName());
-                vo.setPhoneNumber(user.getPhoneNumber());
+            JSONObject jsonObject = batchGetUsers(Collections.singleton(order.getAppUserId()));
+            JSONObject userInfo = jsonObject.getJSONObject(order.getAppUserId().toString());
+            if (Objects.nonNull(userInfo)) {
+                vo.setNickName(userInfo.getString("nickName"));
+                vo.setPhoneNumber(userInfo.getString("mobile"));
             }
         }
 
@@ -320,13 +324,13 @@
         }
 
         // 4. 批量查询关联数据
-        Map<Long, XpAppUser> userMap = batchGetUsers(userIds);
+        JSONObject jsonObject = batchGetUsers(userIds);
         Map<Long, XpVehicle> vehicleMap = batchGetVehicles(vehicleIds);
         Map<Long, XpFleet> fleetMap = batchGetFleets(fleetIds);
 
         // 5. 组装 VO
         return orderList.stream()
-                .map(order -> convertToPageVO(order, userMap, vehicleMap, fleetMap))
+                .map(order -> convertToPageVO(order, jsonObject, vehicleMap, fleetMap))
                 .collect(Collectors.toList());
     }
 
@@ -355,20 +359,22 @@
     /**
      * 批量获取用户信息
      */
-    private Map<Long, XpAppUser> batchGetUsers(Set<Long> userIds) {
+    private JSONObject batchGetUsers(Set<Long> userIds) {
         if (CollectionUtils.isEmpty(userIds)) {
-            return new HashMap<>();
+            return new JSONObject();
         }
         try {
-            R<List<XpAppUser>> result = xpAppUserClient.listByIds(new ArrayList<>(userIds));
-            if (Objects.nonNull(result) && Objects.nonNull(result.getData())) {
-                return result.getData().stream()
-                        .collect(Collectors.toMap(XpAppUser::getId, Function.identity(), (a, b) -> a));
+            GetUserListByUidsVo getUserListByUidsVo = new GetUserListByUidsVo();
+            getUserListByUidsVo.setUids(new ArrayList<>(userIds));
+            getUserListByUidsVo.setGetPreCarOwner(Boolean.TRUE);
+            UserResourcesDto userListByUids = userResourcesClient.getUserListByUids(getUserListByUidsVo);
+            if (userListByUids.getCode().equals(HttpStatus.SUCCESS)) {
+                return JSONObject.parseObject(userListByUids.getData().toString());
             }
         } catch (Exception e) {
             log.error("批量获取用户信息失败: {}", e.getMessage());
         }
-        return new HashMap<>();
+        return new JSONObject();
     }
 
     /**
@@ -452,7 +458,7 @@
      * 转换为分页列表 VO
      */
     private XpOrderPageVO convertToPageVO(XpOrder order,
-                                          Map<Long, XpAppUser> userMap,
+                                          JSONObject jsonObject,
                                           Map<Long, XpVehicle> vehicleMap,
                                           Map<Long, XpFleet> fleetMap) {
         XpOrderPageVO vo = new XpOrderPageVO();
@@ -467,10 +473,10 @@
         vo.setStatus(order.getStatus());
 
         // 用户信息
-        if (Objects.nonNull(order.getAppUserId()) && userMap.containsKey(order.getAppUserId())) {
-            XpAppUser user = userMap.get(order.getAppUserId());
-            vo.setNickName(user.getNickName());
-            vo.setPhoneNumber(user.getPhoneNumber());
+        if (Objects.nonNull(order.getAppUserId()) && jsonObject.containsKey(order.getAppUserId().toString())) {
+            JSONObject userInfo = jsonObject.getJSONObject(order.getAppUserId().toString());
+            vo.setNickName(userInfo.getString("nickName"));
+            vo.setPhoneNumber(userInfo.getString("mobile"));
         }
 
         // 车辆信息

--
Gitblit v1.7.1