From 3c324796964d5a6de04ad22f493b2b4447b3f531 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期二, 14 四月 2026 21:06:53 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/1.0' into 1.0

---
 xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpAppUserCollectAddrServiceImpl.java |   33 +++++++++++++++++++++++++++++++++
 1 files changed, 33 insertions(+), 0 deletions(-)

diff --git a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpAppUserCollectAddrServiceImpl.java b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpAppUserCollectAddrServiceImpl.java
index fd9d342..e4deeff 100644
--- a/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpAppUserCollectAddrServiceImpl.java
+++ b/xp-robotaxi-account-boot/src/main/java/com/xiaopeng/account/service/impl/XpAppUserCollectAddrServiceImpl.java
@@ -14,6 +14,10 @@
 import com.xiaopeng.common.core.web.page.PageInfo;
 import org.springframework.stereotype.Service;
 
+import java.util.List;
+import java.util.Objects;
+import java.util.stream.Collectors;
+
 /**
  * <p>
  * 用户收藏地址 服务实现类
@@ -27,6 +31,7 @@
 
     private static final int COLLECT_TYPE_ADD = 1;
     private static final int COLLECT_TYPE_CANCEL = 2;
+    private static final int ITEM_TYPE_POINT = 1;
     private static final int ITEM_TYPE_STATION = 2;
     private static final int COLLECT_LIMIT = 50;
 
@@ -93,6 +98,28 @@
         return resultPage;
     }
 
+    @Override
+    public List<Long> getPointIdsByUserId(Long uid) {
+        return this.list(buildUserCollectQuery(uid)
+                        .eq(XpAppUserCollectAddr::getItemType, ITEM_TYPE_POINT))
+                .stream()
+                .map(XpAppUserCollectAddr::getPointId)
+                .filter(Objects::nonNull)
+                .distinct()
+                .collect(Collectors.toList());
+    }
+
+    @Override
+    public List<Long> getStationIdsByUserId(Long uid) {
+        return this.list(buildUserCollectQuery(uid)
+                        .eq(XpAppUserCollectAddr::getItemType, ITEM_TYPE_STATION))
+                .stream()
+                .map(XpAppUserCollectAddr::getStationId)
+                .filter(Objects::nonNull)
+                .distinct()
+                .collect(Collectors.toList());
+    }
+
     /**
      * 将前端传入的站点/场站目标解析成统一收藏目标。
      * 优先按 itemType 判断,未传时兼容旧逻辑按 pointId 处理。
@@ -132,6 +159,12 @@
         return wrapper;
     }
 
+    private LambdaQueryWrapper<XpAppUserCollectAddr> buildUserCollectQuery(Long uid) {
+        return new LambdaQueryWrapper<XpAppUserCollectAddr>()
+                .eq(XpAppUserCollectAddr::getAppUserId, uid)
+                .eq(XpAppUserCollectAddr::getDeleted, 0);
+    }
+
     private boolean isStationItem(CollectAddrDTO dto) {
         return dto.getItemType() != null && dto.getItemType() == ITEM_TYPE_STATION;
     }

--
Gitblit v1.7.1