From 5c66a7f02f62ce8f5293a59b467461b0468c4e51 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期六, 18 四月 2026 17:40:18 +0800
Subject: [PATCH] merge

---
 xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java |   46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 46 insertions(+), 0 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 381eda9..0cbcea9 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
@@ -7,6 +7,7 @@
 import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.google.common.collect.ImmutableMap;
@@ -69,6 +70,7 @@
 import com.xiaopeng.common.security.utils.SecurityUtils;
 import com.xiaopeng.order.constant.I18nKeyConstant;
 import com.xiaopeng.order.dto.MileageDto;
+import com.xiaopeng.order.dto.UserOrderListDto;
 import com.xiaopeng.order.job.base.QuartzManager;
 import com.xiaopeng.order.job.base.TimeJobType;
 import com.xiaopeng.order.job.jobs.*;
@@ -87,6 +89,8 @@
 import com.xiaopeng.order.utils.*;
 import com.xiaopeng.order.utils.holiday.HolidayUtil;
 import com.xiaopeng.order.vo.OrderDetailVo;
+import com.xiaopeng.order.vo.OrderInfoVo;
+import com.xiaopeng.order.vo.UserOrderListVo;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.shardingsphere.transaction.annotation.ShardingSphereTransactionType;
@@ -109,6 +113,7 @@
 import java.math.RoundingMode;
 import java.text.SimpleDateFormat;
 import java.time.*;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.concurrent.LinkedBlockingQueue;
 import java.util.concurrent.ThreadPoolExecutor;
@@ -3803,4 +3808,45 @@
         );
         return num.intValue();
     }
+
+
+    /**
+     * 根据 UID 查询用户是否有 RT 订单 & 订单列表
+     * @param dto
+     * @return
+     */
+    @Override
+    public List<UserOrderListVo> getUserOrderList(UserOrderListDto dto) {
+        List<XpOrder> list = this.list(new QueryWrapper<XpOrder>().eq("app_user_id", dto.getUid())
+                .eq("is_deleted", 0)
+                .eq(dto.getOrderStatus() != null, "status", dto.getOrderStatus())
+                .eq(dto.getOrderId() != null, "id", dto.getOrderId())
+                .last(" order by create_time desc limit " + dto.getPageNo() + "," + dto.getPageSize())
+        );
+        List<UserOrderListVo> collect = list.stream().map(order -> {
+            UserOrderListVo vo = new UserOrderListVo();
+            vo.setOrderId(order.getId());
+            vo.setOrderStatus(order.getStatus());
+            vo.setOrderCreatedAt(order.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));
+
+            XpPoint startPoint = xpPointClient.queryById(order.getStartPointId()).getData();
+            vo.setPickupAddress(null != startPoint ? startPoint.getPointAddress() : null);
+            XpPoint endPoint = xpPointClient.queryById(order.getEndPointId()).getData();
+            vo.setDestAddress(null != endPoint ? endPoint.getPointAddress() : null);
+            vo.setTotalPrice(order.getOrderMoney());
+            return vo;
+        }).collect(Collectors.toList());
+        return collect;
+    }
+
+
+    /**
+     * 获取订单详情
+     * @param orderId
+     * @return
+     */
+    @Override
+    public OrderInfoVo getOrderInfo(Long orderId) {
+        return null;
+    }
 }

--
Gitblit v1.7.1