From e7ddb55abe6998771498d808bb26a1f0e7fe777a Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期六, 14 二月 2026 17:25:57 +0800
Subject: [PATCH] 修改点位查询

---
 xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPointServiceImpl.java |   14 +++++++++-----
 1 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPointServiceImpl.java b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPointServiceImpl.java
index eb9d86d..80bcca2 100644
--- a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPointServiceImpl.java
+++ b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPointServiceImpl.java
@@ -59,11 +59,6 @@
 
     @Override
     public NearestVo nearest(NearestDto dto) {
-        // 获取所有的站点信息
-        List<XpPoint> list = list(new LambdaQueryWrapper<XpPoint>().eq(XpPoint::getOperationStatus, 2).eq(XpPoint::getPointType,1).isNotNull(XpPoint::getElectronicAreaId));
-        NearestVo nearestVo = new NearestVo();
-        List<NearestNextVo> nearestNextVos = new ArrayList<>();
-        LocalTime now = LocalTime.now();
         // 走缓存
         Object orderDistanceObj = redisService.getCacheObject(CacheConstants.NEAR_POINT_DISTANCE);
         Integer orderDistance;
@@ -73,6 +68,15 @@
             XpSystemSetting xpSystemSetting = xpSystemSettingMapper.selectOne(null);
             orderDistance = xpSystemSetting.getNearPointDistance();
         }
+        // 获取所有的站点信息
+        List<XpPoint> list = list(new LambdaQueryWrapper<XpPoint>().eq(XpPoint::getOperationStatus, 2).eq(XpPoint::getPointType,1).isNotNull(XpPoint::getElectronicAreaId)
+                // 添加距离计算字段
+                .apply("ST_Distance_Sphere(point({0}, {1}), point(point_lon, point_lat)) <= {2}",
+                        dto.getLongitude(), dto.getLatitude(), orderDistance));
+        NearestVo nearestVo = new NearestVo();
+        List<NearestNextVo> nearestNextVos = new ArrayList<>();
+        LocalTime now = LocalTime.now();
+
 
         for (XpPoint xpPoint : list) {
             // 判断是否在时间段内

--
Gitblit v1.7.1