From 337f05aedafdeca891f3de53d6041deefeada005 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期三, 04 三月 2026 19:44:00 +0800
Subject: [PATCH] 修改bug

---
 xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/XpPricingServiceImpl.java |   22 ++++++++++++++--------
 1 files changed, 14 insertions(+), 8 deletions(-)

diff --git a/xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/XpPricingServiceImpl.java b/xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/XpPricingServiceImpl.java
index 9f15812..1af5616 100644
--- a/xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/XpPricingServiceImpl.java
+++ b/xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/XpPricingServiceImpl.java
@@ -37,6 +37,7 @@
 import com.xiaopeng.itinerary.utils.XpPricingUtil;
 import com.xiaopeng.itinerary.utils.holiday.HolidayUtil;
 import com.xiaopeng.itinerary.utils.map.FastDistanceCalculator;
+import com.xiaopeng.itinerary.utils.map.GDMapGeocodingUtil;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.mongodb.core.geo.GeoJsonPoint;
@@ -116,6 +117,9 @@
     @Resource
     private XpPushMessageClient xpPushMessageClient;
 
+    @Resource
+    private GDMapGeocodingUtil gdMapGeocodingUtil;
+
 
     // 自定义线程池用于并行执行任务
     private final ExecutorService executorService;
@@ -174,8 +178,6 @@
 
     @Override
     public RouteAndFareVo getRouteAndFare(RouteAndFareDto routeAndFareDto, String userId) {
-
-
         // 判断是否5分钟内进行了查询 相同站点的起始点  并且是同时段
         String key = "xp-map-query-" + routeAndFareDto.getOpenCityId()
                 + "-" + routeAndFareDto.getOrigin().getLongitude() + "-" + routeAndFareDto.getOrigin().getLatitude()
@@ -188,12 +190,16 @@
         }
 
         // 1. 基础数据查询
-        XpOpenCity xpOpenCity = xpOpenCityMapper.selectById(routeAndFareDto.getOpenCityId());
-        if (xpOpenCity == null) {
-            throw new ServiceException("未找到步行路线", I18nKeyConstant.CITY_INFORMATION_DOES_NOT_EXIST);
+        Map<String, String> geocode = gdMapGeocodingUtil.geocode(routeAndFareDto.getOrigin().getLongitude().toString(), routeAndFareDto.getOrigin().getLatitude().toString());
+        if(null == geocode){
+            throw new ServiceException("获取城市信息失败", I18nKeyConstant.CITY_NOT_FOUND);
         }
-        String cityCode = xpOpenCity.getCityCode();
-
+        String cityCode = geocode.get("cityCode");
+        XpOpenCity xpOpenCity = xpOpenCityMapper.selectOne(new LambdaQueryWrapper<XpOpenCity>().eq(XpOpenCity::getCityCode, cityCode));
+        if (xpOpenCity == null) {
+            throw new ServiceException("获取城市信息失败", I18nKeyConstant.CITY_NOT_FOUND);
+        }
+        routeAndFareDto.setOpenCityId(xpOpenCity.getId());
         XpRoutePlan xpRoutePlan = xpRoutePlanMapper.selectOne(new LambdaQueryWrapper<XpRoutePlan>().eq(XpRoutePlan::getAuditStatus, 2).eq(XpRoutePlan::getCityCode, cityCode));
         if (xpRoutePlan != null) {
             routeAndFareDto.setRoutePlanRule(xpRoutePlan.getRoutePlanRule());
@@ -208,7 +214,7 @@
 //        // 算距离
         R<RouteVo> distanceAndDuration = xpMapClient.getDistanceAndDuration(routeAndFareDto);
         if (distanceAndDuration.getCode() != 200) {
-            throw new ServiceException("未找到路径", I18nKeyConstant.PATH_NOT_FOUND);
+            throw new ServiceException("获取导肮信息失败", I18nKeyConstant.PATH_NOT_FOUND);
         }
 
 

--
Gitblit v1.7.1