| | |
| | | import com.xiaopeng.api.model.vehicleConvoy.XpVehicle; |
| | | import com.xiaopeng.api.vo.operation.RouteAndFareVo; |
| | | import com.xiaopeng.api.vo.operation.VehiclePositionVo; |
| | | import com.xiaopeng.api.vo.vehicleConvoy.XpVehicleVO; |
| | | import com.xiaopeng.common.core.domain.R; |
| | | import com.xiaopeng.itinerary.service.ActiveOrderService; |
| | | import com.xiaopeng.itinerary.service.XpPricingService; |
| | |
| | | import io.swagger.annotations.Api; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.BeanUtils; |
| | | import org.springframework.data.geo.Distance; |
| | | import org.springframework.data.geo.Metrics; |
| | | import org.springframework.data.geo.Point; |
| | |
| | | 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<XpVehicle>> carAround(@RequestParam double lon,@RequestParam double lat,HttpServletRequest request) { |
| | | |
| | | |
| | | // TODO 需要车头方向 |
| | | Point point = new Point(lon, lat); |
| | | Distance distance = new Distance(3, Metrics.KILOMETERS); |
| | | Criteria criteria = Criteria.where("point") |
| | | .nearSphere(point) |
| | | .maxDistance(distance.getNormalizedValue()); |
| | | Query query = new Query(criteria); |
| | | 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; |
| | | |