package com.xiaopeng.itinerary.controller; import com.xiaopeng.api.dto.map.RouteAndFareDto; import com.xiaopeng.api.dto.order.OrderChangeDto; 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.api.vo.vehicleConvoy.XpVehicleVO; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.itinerary.service.ActiveOrderService; import com.xiaopeng.itinerary.service.XpPricingService; import com.xiaopeng.unifiedverification.interceptor.XpClientCheck; 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; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; 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; /** *

* 订单行程 *

*/ @Slf4j @RestController @RequestMapping("") @Api(tags = "行程中管理") public class ActiveOrderController { @Resource private ActiveOrderService activeOrderService; @Resource private XpPricingService xpPricingService; /** * 在行程中修改目的地-获取路线和费用 * @param routeAndFareDto * @param request * @return */ @PostMapping("/api/v1/mini-program/activeOrder/route-and-fare") @ApiOperation(value = "导航-获取路线和费用", tags = {"小程序-获取路线和费用"}, response = RouteAndFareVo.class) @XpClientCheck(checkToken = false, checkOtpToken = true) public R> getRouteAndFare(@RequestBody @Valid RouteAndFareDto routeAndFareDto, HttpServletRequest request) { if(null == routeAndFareDto.getOrderId()){ return R.fail("订单id不能为空"); } // uid已通过拦截器otp校验,可以直接使用 String uid = request.getHeader("XP-Uid"); return R.ok(xpPricingService.getRouteAndFare(routeAndFareDto, uid)); } /** * 行程中 修改目的地 确认按钮 * 修改目的地, * 1.重新确认路线 * 2.确认价格 */ @ApiOperation(value = "行程中 修改目的地 确认按钮", notes = "", tags = {"小程序-行程中修改目的地"}) @PostMapping("/api/v1/mini-program/order/orderChange") @XpClientCheck(checkToken = false, checkOtpToken = true) public R orderChange(@RequestBody @Validated OrderChangeDto dto, HttpServletRequest request) { String uid = request.getHeader("XP-Uid"); activeOrderService.orderChange(dto, uid); return R.ok(); } @Resource private MongoTemplate mongoTemplate; }