package com.xiaopeng.order.controller; import cn.hutool.core.util.IdUtil; import com.xiaopeng.api.dto.automaticPilot.PushOrderDto; import com.xiaopeng.api.feignClient.automaticPilot.OrderMissionClient; import com.xiaopeng.api.model.order.XpCruiseOrder; import com.xiaopeng.common.core.domain.R; import com.xiaopeng.order.service.IXpCruiseOrderService; import io.swagger.annotations.Api; import lombok.RequiredArgsConstructor; import org.springframework.context.annotation.Lazy; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; /** *

* 订单 前端控制器 *

* * @author mitao * @since 2026-02-03 */ @RestController @Api(tags = "巡游订单") @RequiredArgsConstructor(onConstructor_ = @Lazy) public class XpCruiseOrderController { private final IXpCruiseOrderService xpCruiseOrderService; private final OrderMissionClient orderMissionClient; /** * 查询并终止订单信息 返回id信息 * * @param */ @PostMapping("/inner/cruiseOrder/updateCruiseOrder") public R updateCruiseOrder(@RequestParam String vin) { String id = xpCruiseOrderService.updateCruiseOrder(vin); return R.ok(id); } /** * 查询并完成订单信息 返回id信息 * * @param */ @PostMapping("/inner/cruiseOrder/closeCruiseOrder") public R closeCruiseOrder(@RequestParam String vin) { String id = xpCruiseOrderService.closeCruiseOrder(vin); return R.ok(id); } /** * 查询订单信息 * @param orderId * @return */ @PostMapping("/inner/cruiseOrder/getCruiseOrder") public R getCruiseOrder(@RequestParam String orderId){ return R.ok(xpCruiseOrderService.getById(orderId)); } /** * 新增订单 下发命令 * * @param * @return 订单ID */ @PostMapping("/inner/cruiseOrder/addCruiseOrder") public R addCruiseOrder(@RequestBody XpCruiseOrder order) { order.setId("XU"+ IdUtil.fastUUID()); boolean save = xpCruiseOrderService.save(order); if (!save) { return R.fail("新增失败"); } // 下发命令 PushOrderDto pushOrderDto = new PushOrderDto(); pushOrderDto.setVin(order.getVehicleVin()); pushOrderDto.setOrderId(order.getId()); orderMissionClient.pushOrder(pushOrderDto); return R.ok(order.getId()); } }