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