From 4edaaf570a2cd8af8a9c35694a46289cdf9278b3 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期五, 17 四月 2026 11:58:16 +0800
Subject: [PATCH] Merge branch '1.0' of http://120.76.84.145:10101/gitblit/r/java/Robotaxi into 1.0

---
 xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/XpPricingServiceImpl.java |   42 ++++++++++++++++++++++--------------------
 1 files changed, 22 insertions(+), 20 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 8c34a74..9d4104f 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
@@ -11,6 +11,7 @@
 import com.xiaopeng.api.dto.map.RouteStaleCheckDto;
 import com.xiaopeng.api.dto.map.SelectNavigationRouteDto;
 import com.xiaopeng.api.enums.RouteStrategyKind;
+import com.xiaopeng.api.feignClient.account.UserRoutePlanRuleClient;
 import com.xiaopeng.api.feignClient.account.XpAppUserClient;
 import com.xiaopeng.api.feignClient.account.XpAppUserCouponClient;
 import com.xiaopeng.api.feignClient.map.XpMapClient;
@@ -18,18 +19,11 @@
 import com.xiaopeng.api.feignClient.order.XpOrderClient;
 import com.xiaopeng.api.feignClient.pushMessage.XpPushMessageClient;
 import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient;
+import com.xiaopeng.api.model.account.XpUserRoutePlanRule;
 import com.xiaopeng.api.model.operation.*;
 import com.xiaopeng.api.model.order.XpOrder;
-import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
-import com.xiaopeng.api.service.BootCommonService;
 import com.xiaopeng.api.vo.account.UserCouponVo;
-import com.xiaopeng.api.vo.operation.FareVo;
-import com.xiaopeng.api.vo.operation.MultiRouteAndFareVo;
-import com.xiaopeng.api.vo.operation.RouteAndFareVo;
-import com.xiaopeng.api.vo.operation.RouteOptionVo;
-import com.xiaopeng.api.vo.operation.RoutePreferenceItemVo;
-import com.xiaopeng.api.vo.operation.RouteStaleCheckVo;
-import com.xiaopeng.api.vo.operation.RouteVo;
+import com.xiaopeng.api.vo.operation.*;
 import com.xiaopeng.api.vo.order.XpPricingCardVo;
 import com.xiaopeng.common.core.constant.CacheConstants;
 import com.xiaopeng.common.core.domain.R;
@@ -38,16 +32,17 @@
 import com.xiaopeng.common.redis.service.RedisService;
 import com.xiaopeng.itinerary.constant.I18nKeyConstant;
 import com.xiaopeng.itinerary.dto.XpOrderDto;
-import com.xiaopeng.itinerary.navigation.MultiRouteSnapshotPayload;
 import com.xiaopeng.itinerary.mapper.*;
+import com.xiaopeng.itinerary.navigation.MultiRouteSnapshotPayload;
+import com.xiaopeng.itinerary.service.BootCommonService;
 import com.xiaopeng.itinerary.service.IXpGeoQueryEntityService;
 import com.xiaopeng.itinerary.service.XpPointService;
 import com.xiaopeng.itinerary.service.XpPricingService;
-import com.xiaopeng.itinerary.vo.QueueStatusVo;
 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 com.xiaopeng.itinerary.vo.QueueStatusVo;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -138,6 +133,9 @@
     @Resource
     private XpPointClient xpPointClient;
 
+    @Resource
+    private UserRoutePlanRuleClient userRoutePlanRuleClient;
+
     @Value("${navigation.route.stale-seconds:60}")
     private int navigationStaleSeconds;
 
@@ -212,7 +210,7 @@
         if(vehicleModel != null){
             queryWrapper.eq(XpPricing::getVehicleModel, vehicleModel);
         }
-        return super.getOne(queryWrapper,true);
+        return super.getOne(queryWrapper);
     }
 
 
@@ -240,17 +238,12 @@
         if (openCities == null ) {
             throw new ServiceException("获取城市信息失败", I18nKeyConstant.CITY_NOT_FOUND);
         }
+        routeAndFareDto.setOpenCityId(openCities.getId());
         //根据订单获取车型 获取定价策略
-        String vehicleModel = bootCommonService.getVehicleModelId(routeAndFareDto.getOrderId());
-
-        XpPricing xpPricing = this.getInfo(routeAndFareDto.getOpenCityId(),vehicleModel);
+        XpPricing xpPricing = bootCommonService.getXpPricing(routeAndFareDto.getOpenCityId(), routeAndFareDto.getOrderId(), null);
         if (xpPricing == null) {
             throw new ServiceException("当前区域未开通服务", I18nKeyConstant.NO_CURRENT_REGION);
         }
-
-
-        XpOpenCity xpOpenCity = openCities;
-        routeAndFareDto.setOpenCityId(xpOpenCity.getId());
         List<XpRoutePlan> xpRoutePlan = xpRoutePlanMapper.selectList(new LambdaQueryWrapper<XpRoutePlan>().eq(XpRoutePlan::getAuditStatus, 2).eq(XpRoutePlan::getCityCode, cityCode));
 
         // 找出用户偏好
@@ -659,7 +652,16 @@
         XpOpenCity xpOpenCity = openCities;
         dto.setOpenCityId(xpOpenCity.getId());
         xpOrder.setCityCode(xpOpenCity.getCityCode());
-        XpRoutePlan xpRoutePlan = xpRoutePlanMapper.selectOne(new LambdaQueryWrapper<XpRoutePlan>().eq(XpRoutePlan::getAuditStatus, 2).eq(XpRoutePlan::getCityCode, xpOpenCity.getCityCode()));
+        XpUserRoutePlanRule xpUserRoutePlanRule = userRoutePlanRuleClient.getXpUserRoutePlanRule(uid).getData();
+        XpRoutePlan xpRoutePlan = null;
+        if(null != xpUserRoutePlanRule){
+            xpRoutePlan = xpRoutePlanMapper.selectOne(new LambdaQueryWrapper<XpRoutePlan>().eq(XpRoutePlan::getAuditStatus, 2)
+                    .eq(XpRoutePlan::getCityCode, xpOpenCity.getCityCode()).eq(XpRoutePlan::getRoutePlanRule, xpUserRoutePlanRule.getRoutePlanRule()));
+            xpRoutePlanMapper.selectById(xpUserRoutePlanRule.getRoutePlanRule());
+        }else{
+            xpRoutePlan = xpRoutePlanMapper.selectOne(new LambdaQueryWrapper<XpRoutePlan>().eq(XpRoutePlan::getAuditStatus, 2)
+                    .eq(XpRoutePlan::getCityCode, xpOpenCity.getCityCode()).last(" limit 1"));
+        }
 
         Integer distance = 0;
         Integer duration = 0;

--
Gitblit v1.7.1