From 6e1d45b41deffba06e9c4092db07630d4fbd5078 Mon Sep 17 00:00:00 2001
From: kong <sunuping1@sina.com>
Date: 星期日, 12 四月 2026 16:35:27 +0800
Subject: [PATCH] add 路线选择

---
 xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/controller/XpPricingController.java |   50 ++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 50 insertions(+), 0 deletions(-)

diff --git a/xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/controller/XpPricingController.java b/xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/controller/XpPricingController.java
index 43e3cbe..9230c8d 100644
--- a/xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/controller/XpPricingController.java
+++ b/xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/controller/XpPricingController.java
@@ -3,6 +3,12 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.xiaopeng.api.dto.map.RouteAndFareDto;
+import com.xiaopeng.api.dto.map.RoutePreferenceSaveDto;
+import com.xiaopeng.api.dto.map.RouteStaleCheckDto;
+import com.xiaopeng.api.dto.map.SelectNavigationRouteDto;
+import com.xiaopeng.api.vo.operation.MultiRouteAndFareVo;
+import com.xiaopeng.api.vo.operation.RoutePreferenceItemVo;
+import com.xiaopeng.api.vo.operation.RouteStaleCheckVo;
 import com.xiaopeng.api.dto.operation.LonLatDto;
 import com.xiaopeng.api.model.operation.XpPricing;
 import com.xiaopeng.api.vo.operation.RouteAndFareVo;
@@ -24,6 +30,7 @@
 
 import javax.servlet.http.HttpServletRequest;
 import javax.validation.Valid;
+import java.util.List;
 
 /**
  * <p>
@@ -145,4 +152,47 @@
         hotFixInfoVo.setHotfixStatus(0);
         return R.ok(hotFixInfoVo);
     }
+
+
+
+    @PostMapping("/base/v1/mini-program/navigation/multi-route-and-fare")
+    @ApiOperation(value = "导航-多策略路线合并与费用", tags = {"小程序-路线选择"}, response = MultiRouteAndFareVo.class)
+    @XpClientCheck(checkToken = false, checkOtpToken = true)
+    public R<MultiRouteAndFareVo> getMultiRouteAndFare(@RequestBody @Valid RouteAndFareDto routeAndFareDto, HttpServletRequest request) {
+        String uid = request.getHeader("XP-Uid");
+        return R.ok(xpPricingService.getMultiRouteAndFare(routeAndFareDto, uid));
+    }
+
+    @PostMapping("/base/v1/mini-program/navigation/select-route")
+    @ApiOperation(value = "选中某条路线并写入导航缓存", tags = {"小程序-路线选择"})
+    @XpClientCheck(checkToken = false, checkOtpToken = true)
+    public R<Void> selectNavigationRoute(@RequestBody @Valid SelectNavigationRouteDto dto, HttpServletRequest request) {
+        String uid = request.getHeader("XP-Uid");
+        xpPricingService.selectNavigationRoute(dto, uid);
+        return R.ok();
+    }
+
+    @PostMapping("/base/v1/mini-program/navigation/route-stale-check")
+    @ApiOperation(value = "路线/价格过期静默校验", tags = {"小程序-路线选择"}, response = RouteStaleCheckVo.class)
+    @XpClientCheck(checkToken = false, checkOtpToken = true)
+    public R<RouteStaleCheckVo> checkRouteStale(@RequestBody @Valid RouteStaleCheckDto dto, HttpServletRequest request) {
+        String uid = request.getHeader("XP-Uid");
+        return R.ok(xpPricingService.checkRouteStale(dto, uid));
+    }
+
+    @GetMapping("/base/v1/mini-program/navigation/route-preferences")
+    @ApiOperation(value = "路线偏好可选项", tags = {"小程序-路线选择"}, response = RoutePreferenceItemVo.class)
+    @XpClientCheck(checkToken = false, checkOtpToken = true)
+    public R<List<RoutePreferenceItemVo>> listRoutePreferences(@RequestParam Long openCityId) {
+        return R.ok(xpPricingService.listRoutePreferences(openCityId));
+    }
+
+    @PostMapping("/base/v1/mini-program/navigation/route-preference")
+    @ApiOperation(value = "保存用户路线偏好", tags = {"小程序-路线选择"})
+    @XpClientCheck(checkToken = false, checkOtpToken = true)
+    public R<Void> saveUserRoutePreference(@RequestBody @Valid RoutePreferenceSaveDto dto, HttpServletRequest request) {
+        String uid = request.getHeader("XP-Uid");
+        xpPricingService.saveUserRoutePreference(dto.getCode(), uid);
+        return R.ok();
+    }
 }

--
Gitblit v1.7.1