From 8d0f9a9592013d00731008ee38e4414765e85921 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期四, 12 二月 2026 17:22:41 +0800
Subject: [PATCH] 小程序接口

---
 xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/map/XpMapClient.java                        |    2 +-
 xp-robotaxi-common/xp-common-redis/src/main/java/com/xiaopeng/common/redis/service/RedisService.java   |    7 ++++---
 xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPricingServiceImpl.java |   18 +++++++++---------
 xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java               |   12 +++++++++---
 xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/utils/GDMapGeocodingUtil.java                      |    7 ++++++-
 5 files changed, 29 insertions(+), 17 deletions(-)

diff --git a/xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/map/XpMapClient.java b/xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/map/XpMapClient.java
index 45f77d0..11414e5 100644
--- a/xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/map/XpMapClient.java
+++ b/xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/map/XpMapClient.java
@@ -14,7 +14,6 @@
 
 @FeignClient(contextId = "XpMapClient", value = ServiceNameConstantsEnum.XP_MAP_SERVICE, fallbackFactory = XpMapClientFallbackFactory.class)
 public interface XpMapClient {
-
     /**
      * 获取距离和时长
      * @param dto
@@ -24,6 +23,7 @@
     R<RouteVo> getDistanceAndDuration(@RequestBody RouteAndFareDto dto);
 
 
+
     /**
      * 判断是否同一经营区域
      * @param dto
diff --git a/xp-robotaxi-common/xp-common-redis/src/main/java/com/xiaopeng/common/redis/service/RedisService.java b/xp-robotaxi-common/xp-common-redis/src/main/java/com/xiaopeng/common/redis/service/RedisService.java
index 718d003..5815245 100644
--- a/xp-robotaxi-common/xp-common-redis/src/main/java/com/xiaopeng/common/redis/service/RedisService.java
+++ b/xp-robotaxi-common/xp-common-redis/src/main/java/com/xiaopeng/common/redis/service/RedisService.java
@@ -173,8 +173,9 @@
     }
 
     // 获取第一个元素但不删除
-    public Object getFirstElement(String key) {
-        return redisTemplate.opsForList().index(key, 0);
+    public String getFirstElement(String key) {
+        String index = (String) redisTemplate.opsForList().index(key, 0);
+        return index;
     }
 
     // 获取第一个元素并删除(弹出)
@@ -374,7 +375,7 @@
      */
     public Set<String> getQuoteMatchName(String name) {
         // 模糊查询key为name的值
-        Set<String> keys = redisTemplate.keys("*" + name );
+        Set<String> keys = redisTemplate.keys(name + "*");
         return keys;
     }
 }
diff --git a/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/utils/GDMapGeocodingUtil.java b/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/utils/GDMapGeocodingUtil.java
index 7b72893..45ebfa8 100644
--- a/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/utils/GDMapGeocodingUtil.java
+++ b/xp-robotaxi-map-boot/src/main/java/com/xiaopeng/map/utils/GDMapGeocodingUtil.java
@@ -5,6 +5,7 @@
 import com.alibaba.fastjson.JSONObject;
 import com.xiaopeng.api.dto.operation.LonLatDto;
 import com.xiaopeng.api.vo.operation.RouteVo;
+import com.xiaopeng.common.core.utils.HttpUtils;
 import com.xiaopeng.map.mangodb.service.XpGeoFencingPolygonService;
 import com.xiaopeng.map.utils.mangoUtils.MongoGeoFenceUtil;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -54,11 +55,15 @@
         params.put("start", start.getLongitude() + "," + start.getLatitude());
         params.put("end", end.getLongitude() + "," + end.getLatitude());
         params.put("routeUserType",2);
-        params.put("voidPolygons", avoidRoads);
+        if(avoidRoads!=null && !avoidRoads.isEmpty()){
+            params.put("voidPolygons", avoidRoads);
+        }
         if(routePlanRule!=null){
             params.put("strategy", routePlanRule);
         }
 
+        String post = HttpUtils.post(url, JSON.toJSONString(params));
+        System.out.println("高德地图返回结果:"+ post);
         String forObject = restTemplate.getForObject(url, String.class, params);
         JSONObject jsonObject = JSON.parseObject(forObject);
         String data = jsonObject.getString("data");
diff --git a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPricingServiceImpl.java b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPricingServiceImpl.java
index c61391c..e408dc5 100644
--- a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPricingServiceImpl.java
+++ b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPricingServiceImpl.java
@@ -396,11 +396,11 @@
 
 
         // 获取起步里程
-        XpPricing xpPricing = this.baseMapper.selectOne(new LambdaQueryWrapper<XpPricing>().eq(XpPricing::getCityId, dto.getOpenCityId()));
-        Integer startMileage = XpPricingUtil.getStartMileage(xpPricing.getStartingFareJson());
-        if (startMileage == null) {
-            throw new ServiceException("当前区域未开通服务", I18nKeyConstant.NO_CURRENT_REGION);
-        }
+//        XpPricing xpPricing = this.baseMapper.selectOne(new LambdaQueryWrapper<XpPricing>().eq(XpPricing::getCityId, dto.getOpenCityId()));
+//        Integer startMileage = XpPricingUtil.getStartMileage(xpPricing.getStartingFareJson());
+//        if (startMileage == null) {
+//            throw new ServiceException("当前区域未开通服务", I18nKeyConstant.NO_CURRENT_REGION);
+//        }
 
 
         // 根据id获取手机号
@@ -417,7 +417,7 @@
         // 生成订单数据
         XpOrder xpOrder = new XpOrder();
 
-        xpOrder.setStartMileage(Double.valueOf(startMileage));
+//        xpOrder.setStartMileage(Double.valueOf(startMileage));
 
         xpOrder.setAppUserId(Long.valueOf(uid));
         xpOrder.setOrderNumber("XP" + System.currentTimeMillis());
@@ -473,10 +473,10 @@
         Integer distance = 0;
         Integer duration = 0;
         if (distanceAndDuration.getCode() != 200) {
-            throw new ServiceException("订单生成失败", I18nKeyConstant.ORDER_CREATE_FAIL);
+//            throw new ServiceException("订单生成失败", I18nKeyConstant.ORDER_CREATE_FAIL);
         }
-        distance = distanceAndDuration.getData().getDistance();
-        duration = distanceAndDuration.getData().getDuration();
+//        distance = distanceAndDuration.getData().getDistance();
+//        duration = distanceAndDuration.getData().getDuration();
 
 
         // 产生订单
diff --git a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java
index 22acf2e..5e710ef 100644
--- a/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java
+++ b/xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/utils/TaskOrderUtil.java
@@ -83,18 +83,18 @@
     /**
      * 5秒执行一次
      */
-//    @Scheduled(cron = "0/5 * * * * ?")
+    @Scheduled(cron = "0/5 * * * * ?")
     public void taskOrder() {
         System.out.println("5秒执行一次");
         Set<String> quoteMatchName = redisService.getQuoteMatchName(CacheConstants.QUEUE_POINT_ID);
         for (String name : quoteMatchName) {
-            Object firstElement = redisService.getFirstElement(name);
+            String firstElement = redisService.getFirstElement(name);
             if (firstElement != null) {
                 String[] split = firstElement.toString().split("_");
                 // 如果市未处理 创建新任务
                 if (split[2].equals("0")) {
                     // 状态改为处理中
-                    redisService.updateFirst(name, split[0] + "_" + split[1] + "_1");
+//                    redisService.updateFirst(name, split[0] + "_" + split[1] + "_1"+split[3]+split[4]+split[5]+split[6]);
                     threadPoolTaskExecutor.submit(() -> {
                         orderProcess(name, firstElement.toString());
                     });
@@ -110,6 +110,7 @@
      * @param firstElement 队列第一个元素
      */
     private void orderProcess(String quoteName, String firstElement) {
+        System.out.println("进入处理环节");
         XpTradingStrategy xpTradingStrategy = xpTradingStrategyService.getOne(null);
         String orderId = firstElement.split("_")[0];
         String lonLat = firstElement.split("_")[1];
@@ -207,6 +208,7 @@
      * @param xpTradingStrategy  规则
      */
     private void processPushOrder(String quoteName, int count, String uid, String[] split, String orderNo, XpTradingStrategy xpTradingStrategy, String distance, String duration, String planRule) {
+        System.out.println("进入推单环环节");
         // 订单状态
         R<XpOrder> xpOrderR = xpOrderClient.queryOrderByOrderNo(orderNo);
         if (xpOrderR.getCode() != 200) {
@@ -217,9 +219,13 @@
         }
 
         for (int i = 0; i < count; i++) {
+
+            System.out.println("进入找车环节");
             // 根据距离找车
             // 车多则根据配置找具体车数量 根据距离最近
             List<VehiclePosition> positionList = vehiclePositionService.findAvailableVehiclesNearby(Double.parseDouble(split[0]), Double.parseDouble(split[1]), xpTradingStrategy.getOnePushDistance(), xpTradingStrategy.getSimultaneouslyOrderCount());
+
+
             List<VehiclePositionVo> availableVehiclesNearby = BeanUtil.copyToList(positionList, VehiclePositionVo.class);
 
             if (!availableVehiclesNearby.isEmpty()) {

--
Gitblit v1.7.1