From 15172f05e7901e362889bf44155dd4859cd2d1a4 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 22 四月 2026 09:57:47 +0800
Subject: [PATCH] [fix] 附近车辆
---
xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/controller/ActiveOrderController.java | 25 ++++++++++++++++++++-----
1 files changed, 20 insertions(+), 5 deletions(-)
diff --git a/xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/controller/ActiveOrderController.java b/xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/controller/ActiveOrderController.java
index f2b07e6..3692cfb 100644
--- a/xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/controller/ActiveOrderController.java
+++ b/xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/controller/ActiveOrderController.java
@@ -2,8 +2,10 @@
import com.xiaopeng.api.dto.map.RouteAndFareDto;
import com.xiaopeng.api.dto.order.OrderChangeDto;
-import com.xiaopeng.api.vo.automaticPilot.VehiclePosition;
+import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient;
+import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
import com.xiaopeng.api.vo.operation.RouteAndFareVo;
+import com.xiaopeng.api.vo.operation.VehiclePositionVo;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.itinerary.service.ActiveOrderService;
import com.xiaopeng.itinerary.service.XpPricingService;
@@ -23,7 +25,9 @@
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.validation.Valid;
+import java.util.Comparator;
import java.util.List;
+import java.util.stream.Collectors;
/**
@@ -76,23 +80,34 @@
return R.ok();
}
+ @Resource
+ XpVehicleClient xpVehicleClient;
/**
* 周围车辆点位查询
*/
@ApiOperation(value = "周围车辆点位查询", notes = "", tags = {"小程序-周围车辆点位查询"})
@GetMapping("/api/v1/mini-program/nearby/cars")
@XpClientCheck(checkToken = false, checkOtpToken = true)
- public R<List<VehiclePosition>> carAround(@RequestParam double lon,@RequestParam double lat,@RequestParam double distanceMeters,HttpServletRequest request) {
+ public R<List<XpVehicle>> carAround(@RequestParam double lon,@RequestParam double lat,HttpServletRequest request) {
- String uid = request.getHeader("XP-Uid");
+ // TODO 需要车头方向
Point point = new Point(lon, lat);
- Distance distance = new Distance(distanceMeters / 1000.0, Metrics.KILOMETERS);
+ Distance distance = new Distance(3, Metrics.KILOMETERS);
Criteria criteria = Criteria.where("point")
.nearSphere(point)
.maxDistance(distance.getNormalizedValue());
Query query = new Query(criteria);
- return R.ok(mongoTemplate.find(query, VehiclePosition.class));
+ List<VehiclePositionVo> vehiclePositions = mongoTemplate.find(query, VehiclePositionVo.class);
+
+ List<XpVehicle> xpVehicleList = vehiclePositions.stream()
+ .sorted(Comparator.comparingDouble(VehiclePositionVo::getDistance))
+ .map(v -> xpVehicleClient.findByVehicleVin(v.getVin()).getData())
+ .filter(v -> v.getState() == 0)
+ .limit(5)
+ .collect(Collectors.toList());
+
+ return R.ok(xpVehicleList);
}
@Resource
private MongoTemplate mongoTemplate;
--
Gitblit v1.7.1