xp-robotaxi-api/src/main/java/com/xiaopeng/api/vo/automaticPilot/VehiclePosition.java
@@ -2,7 +2,6 @@ import lombok.Data; import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.geo.GeoJsonPoint; import org.springframework.data.mongodb.core.index.CompoundIndex; import org.springframework.data.mongodb.core.index.CompoundIndexes; @@ -22,7 +21,7 @@ @CompoundIndex(name = "location_index", def = "{'point': '2dsphere'}") } ) public class VehiclePosition implements Serializable { public class VehiclePosition implements Serializable { /** * 车辆VIN */ xp-robotaxi-api/src/main/java/com/xiaopeng/api/vo/operation/NearestNextVo.java
File was renamed from xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/vo/NearestNextVo.java @@ -1,4 +1,4 @@ package com.xiaopeng.operation.vo; package com.xiaopeng.api.vo.operation; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; 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; xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPointServiceImpl.java
@@ -5,13 +5,11 @@ import com.alibaba.fastjson2.JSONArray; import com.alibaba.fastjson2.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xiaopeng.api.dto.operation.PointMapQuery; import com.xiaopeng.api.dto.order.HistoryEndPointsDto; import com.xiaopeng.api.dto.order.HistoryStartPointsDto; import com.xiaopeng.api.feignClient.account.XpAppUserCollectAddrClient; import com.xiaopeng.api.model.account.XpAppUserCollectAddr; import com.xiaopeng.api.model.operation.*; import com.xiaopeng.api.query.operation.PointListQuery; import com.xiaopeng.api.query.operation.PointPageListListQuery; @@ -35,7 +33,7 @@ import com.xiaopeng.operation.utils.TimeRangeChecker; import com.xiaopeng.operation.utils.holiday.HolidayUtil; import com.xiaopeng.operation.utils.map.FastDistanceCalculator; import com.xiaopeng.operation.vo.NearestNextVo; import com.xiaopeng.api.vo.operation.NearestNextVo; import com.xiaopeng.operation.vo.NearestVo; import com.xiaopeng.operation.vo.OrderDistanceVo; import org.springframework.stereotype.Service; xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/vo/NearestVo.java
@@ -1,5 +1,6 @@ package com.xiaopeng.operation.vo; import com.xiaopeng.api.vo.operation.NearestNextVo; import io.swagger.annotations.ApiModel; import lombok.Data;