liujie
2026-03-13 6f327dd27e765feb717ac73ee78b5c596b7436aa
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpOrderController.java
@@ -97,9 +97,9 @@
     */
    @PostMapping("/inner/order/has-unpaid-order")
    @ApiOperation(value = "查询是否有未支付订单 或 正在进行的订单", tags = {"内部接口"})
    public R<Long> hasUnPaodOrder(String uid){
    public R<Long> hasUnPaodOrder(String uid) {
        List<XpOrder> list = xpOrderService.list(new LambdaQueryWrapper<XpOrder>().eq(XpOrder::getAppUserId, Long.parseLong(uid)).in(XpOrder::getStatus, Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8)));
        if(!list.isEmpty()){
        if (!list.isEmpty()) {
            return R.ok(list.get(0).getId());
        }
        return R.ok(0l);
@@ -113,12 +113,12 @@
     * @return 订单详情
     */
    @PostMapping("/inner/order/queryOrderById")
    public R<XpOrder> queryOrderById(@RequestParam Long orderId){
    public R<XpOrder> queryOrderById(@RequestParam Long orderId) {
        return R.ok(xpOrderService.getById(orderId));
    }
    @PostMapping("/inner/order/queryOrderByOrderNo")
    public R<XpOrder> queryOrderByOrderNo(@RequestParam String orderNo){
    public R<XpOrder> queryOrderByOrderNo(@RequestParam String orderNo) {
        return R.ok(xpOrderService.getOne(new LambdaQueryWrapper<XpOrder>().eq(XpOrder::getOrderNumber, orderNo)));
    }
@@ -128,17 +128,16 @@
     * @return 订单数量
     */
    @PostMapping("/inner/order/getOrderNum")
    public  R<Integer> getOrderNum(@RequestBody GetOrderNumDto dto){
    public R<Integer> getOrderNum(@RequestBody GetOrderNumDto dto) {
        return R.ok(xpOrderService.getOrderNum(dto));
    }
    /**
     * 成功操作下发命令后调用 用于弹出redis队列的获取成功的数据
     */
    @PostMapping("/inner/order/popOrder")
    public  R<?> popOrder(@RequestBody PopOrderDto dto){
    public R<?> popOrder(@RequestBody PopOrderDto dto) {
        xpOrderService.popOrder(dto);
        return R.ok();
    }
@@ -149,9 +148,9 @@
     * @param xpOrder 订单信息
     */
    @PostMapping("/inner/order/updateOrder")
    public R<?> updateOrder(@RequestBody XpOrder xpOrder){
    public R<?> updateOrder(@RequestBody XpOrder xpOrder) {
        xpOrder.setAppUserId(null);
        return xpOrderService.updateById(xpOrder)?R.ok():R.fail();
        return xpOrderService.updateById(xpOrder) ? R.ok() : R.fail();
    }
@@ -162,9 +161,9 @@
     * @return 订单ID
     */
    @PostMapping("/inner/order/addOrder")
    public R<Long> addOrder(@RequestBody XpOrder xpOrder){
    public R<Long> addOrder(@RequestBody XpOrder xpOrder) {
        boolean save = xpOrderService.addOrder(xpOrder);
        if(!save){
        if (!save) {
            return R.fail("新增失败");
        }
        return R.ok(xpOrder.getId());
@@ -178,7 +177,7 @@
     * @return 操作结果
     */
    @PostMapping("/inner/order/cancelOrder")
    public R<?> cancelOrder(@RequestParam("orderId") String orderId){
    public R<?> cancelOrder(@RequestParam("orderId") String orderId) {
        xpOrderService.cancelOrder(orderId);
        return R.ok();
    }
@@ -281,38 +280,42 @@
     * @param dto 改派请求参数
     * @return 操作结果
     */
    @ApiOperation(value = "改派订单", tags = {"管理后台-交易管理-订单管理"},notes = "车辆列表在vehicleConvoy服务")
    @ApiOperation(value = "改派订单", tags = {"管理后台-交易管理-订单管理"}, notes = "车辆列表在vehicleConvoy服务")
    @PostMapping("/api/v1/order/reassignById")
    public R<?> reassignById(@Validated @RequestBody XpOrderReassignDTO dto) {
        xpOrderService.reassignOrder(
            dto.getOrderId(),
            dto.getVehicleId(),
            dto.getReassignReason()
                dto.getOrderId(),
                dto.getVehicleId(),
                dto.getReassignReason()
        );
        return R.ok();
    }
    @ApiOperation(value = "订单改价", tags = {"管理后台-交易管理-订单管理"})
    @PostMapping("/api/v1/order/changeAmount")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "id", value = "订单ID", required = true, dataType = "Long"),
            @ApiImplicitParam(name = "amount", value = "新的订单金额", required = true, dataType = "BigDecimal")
    })
    public R<?> changeAmount(@RequestParam("id") Long id ,@RequestParam("amount") BigDecimal amount) {
    public R<?> changeAmount(@RequestParam("id") Long id, @RequestParam("amount") BigDecimal amount) {
        xpOrderService.changeAmount(id, amount);
        return R.ok();
    }
    /**
     * 获取用户快捷胶囊 历史 时段 终点高点
     */
    @ApiOperation(value = "获取用户快捷胶囊 历史 时段 终点高点", tags = {"小程序-获取用户快捷胶囊 历史 时段 终点高点"})
    @GetMapping("/api/v1/mini-program/order/getUserQuickCapsule")
    @XpClientCheck(checkToken = false, checkOtpToken = true)
    public R<XpPointInfoVo> getUserQuickCapsule(HttpServletRequest  request) {
    public R<XpPointInfoVo> getUserQuickCapsule(HttpServletRequest request) {
        // uid已通过拦截器otp校验,可以直接使用
        String uid = request.getHeader("XP-Uid");
        return R.ok(xpOrderService.getUserQuickCapsule(uid));
    }
    /**
     * 获取订单详情
     */
@@ -322,7 +325,7 @@
    public R<OrderDetailVo> orderDetail(@PathVariable("orderId") Long orderId, HttpServletRequest request) {
        // uid已通过拦截器otp校验,可以直接使用
        String uid = request.getHeader("XP-Uid");
        return R.ok(xpOrderService.orderDetail(orderId,uid));
        return R.ok(xpOrderService.orderDetail(orderId, uid));
    }
@@ -332,21 +335,22 @@
    @ApiOperation(value = "获取历史下单成功起点10条数据列表", tags = {"小程序-获取历史下单成功起点10条数据列表"})
    @GetMapping("/base/v1/mini-program/history/startPoints")
    @XpClientCheck(checkToken = false, checkOtpToken = true)
    public R<List<XpHistoryStartPointsVo>> getHistoryStartPoints(double lon,double lat,HttpServletRequest  request) {
    public R<List<XpHistoryStartPointsVo>> getHistoryStartPoints(double lon, double lat, HttpServletRequest request) {
        // uid已通过拦截器otp校验,可以直接使用
        String uid = request.getHeader("XP-Uid");
        return R.ok(xpOrderService.getHistoryStartPoints(uid,lon,lat));
        return R.ok(xpOrderService.getHistoryStartPoints(uid, lon, lat));
    }
    /**
     * 获取历史下单成功终点点10条数据列表
     */
    @ApiOperation(value = "获取历史下单成功终点10条数据列表", tags = {"小程序-获取历史下单成功终点10条数据列表"})
    @GetMapping("/base/v1/mini-program/history/endPoints")
    @XpClientCheck(checkToken = false, checkOtpToken = true)
    public R<List<XpHistoryEndPointsVo>> getHistoryEndPoints(double lon, double lat, HttpServletRequest  request) {
    public R<List<XpHistoryEndPointsVo>> getHistoryEndPoints(double lon, double lat, HttpServletRequest request) {
        // uid已通过拦截器otp校验,可以直接使用
        String uid = request.getHeader("XP-Uid");
        return R.ok(xpOrderService.getHistoryEndPoints(uid,lon,lat));
        return R.ok(xpOrderService.getHistoryEndPoints(uid, lon, lat));
    }
@@ -356,7 +360,7 @@
    @ApiOperation(value = "获取正在进行中的订单", tags = {"小程序-获取正在进行中的订单"})
    @GetMapping("/api/v1/mini-program/order/active")
    @XpClientCheck(checkToken = false, checkOtpToken = true)
    public R<XpOrderDetailVO> getActiveOrder(HttpServletRequest  request) {
    public R<XpOrderDetailVO> getActiveOrder(HttpServletRequest request) {
        // uid已通过拦截器otp校验,可以直接使用
        String uid = request.getHeader("XP-Uid");
        return R.ok(xpOrderService.getActiveOrder(uid));
@@ -369,49 +373,50 @@
    @ApiOperation(value = "查询历史订单列表", tags = {"小程序-查询历史订单列表"})
    @PostMapping("/api/v1/mini-program/order/history/list")
    @XpClientCheck(checkToken = false, checkOtpToken = true)
    public R<XpOrderHistoryVO> getHistoryOrderList(@RequestBody XpHistoryOrderListQuery query, HttpServletRequest  request) {
    public R<XpOrderHistoryVO> getHistoryOrderList(@RequestBody XpHistoryOrderListQuery query, HttpServletRequest request) {
        // uid已通过拦截器otp校验,可以直接使用
        String uid = request.getHeader("XP-Uid");
        return R.ok(xpOrderService.getHistoryOrderList(query, uid));
    }
    /**+
    /**
     * +
     * 取消订单
     */
    @PutMapping("/api/v1/mini-program/order/cancel/{orderId}")
    @ApiOperation(value = "取消订单", tags = {"小程序-取消订单"})
    @XpClientCheck(checkToken = false, checkOtpToken = true)
    public R cancelOrder(@PathVariable("orderId") Long orderId,HttpServletRequest request) {
    public R cancelOrder(@PathVariable("orderId") Long orderId, HttpServletRequest request) {
        // uid已通过拦截器otp校验,可以直接使用
        String uid = request.getHeader("XP-Uid");
        xpOrderService.cancelOrder(orderId,uid);
        xpOrderService.cancelOrder(orderId, uid);
        return R.ok();
    }
    /**+
    /**
     * +
     * 手动结束订单
     */
    @PutMapping("/api/v1/mini-program/order/endTrip/{orderId}")
    @ApiOperation(value = "结束行程", tags = {"小程序-结束行程"})
    @XpClientCheck(checkToken = false, checkOtpToken = true)
    public R endTrip(@PathVariable("orderId") Long orderId,HttpServletRequest request) {
    public R endTrip(@PathVariable("orderId") Long orderId, HttpServletRequest request) {
        // uid已通过拦截器otp校验,可以直接使用
        String uid = request.getHeader("XP-Uid");
        try {
            xpOrderService.endTrip(orderId,uid);
        }catch (Exception e){
            xpOrderService.endTrip(orderId, uid);
        } catch (Exception e) {
            return R.ok();
        }
        return R.ok();
    }
    /**+
    /**
     * +
     * 获取行程费用明细
     */
    @PutMapping("/api/v1/mini-program/order/fare-breakdown/{orderId}")
@@ -420,9 +425,11 @@
    public R<FareBreakdownVo> fareBreakdown(@PathVariable("orderId") Long orderId, HttpServletRequest request) {
        // uid已通过拦截器otp校验,可以直接使用
        String uid = request.getHeader("XP-Uid");
        return xpOrderService.fareBreakdown(orderId,uid);
        return xpOrderService.fareBreakdown(orderId, uid);
    }
    /**+
    /**
     * +
     * 获取行程费用明细
     */
    @PutMapping("/api/v1/mini-program/order/feeDescription/{orderId}")
@@ -431,8 +438,9 @@
    public R<String> feeDescription(@PathVariable("orderId") Long orderId, HttpServletRequest request) {
        // uid已通过拦截器otp校验,可以直接使用
        String uid = request.getHeader("XP-Uid");
        return xpOrderService.feeDescription(orderId,uid);
        return xpOrderService.feeDescription(orderId, uid);
    }
    /**
     * 订单评价
     */
@@ -442,7 +450,7 @@
    public R payment(@Validated @RequestBody XpOrderPayDto dto, HttpServletRequest request) {
        // uid已通过拦截器otp校验,可以直接使用
        String uid = request.getHeader("XP-Uid");
        return xpOrderService.payment(dto,uid);
        return xpOrderService.payment(dto, uid);
    }
    /**
@@ -454,7 +462,7 @@
    public R comment(@Validated @RequestBody XpOrderCommentDto dto, HttpServletRequest request) {
        // uid已通过拦截器otp校验,可以直接使用
        String uid = request.getHeader("XP-Uid");
        xpOrderService.comment(dto,uid);
        xpOrderService.comment(dto, uid);
        return R.ok();
    }
@@ -465,7 +473,7 @@
    @PostMapping("/inner/v1/order/updateOrderStatus")
    public R<String> updateOrderStatus(@RequestParam Long orderId,
                                       @RequestParam Integer status) {
        return xpOrderService.updateOrderStatus(orderId,status);
        return xpOrderService.updateOrderStatus(orderId, status);
    }
    /**
@@ -476,7 +484,7 @@
    @GetMapping("/api/v1/mini-program/order/queryVehicleByOrderId")
    public R<XpVehicle> queryVehicleByOrderId(@RequestParam Long orderId, HttpServletRequest request) {
        String uid = request.getHeader("XP-Uid");
        return R.ok(xpOrderService.queryVehicleByOrderId(orderId,uid));
        return R.ok(xpOrderService.queryVehicleByOrderId(orderId, uid));
    }
    /**
@@ -505,11 +513,11 @@
        String key = "";
        //接驾情况,获取车辆位置到起点的导航
        if(xpOrder.getStatus() < 5){
        if (xpOrder.getStatus() < 5) {
            key = "ORDER_NAVIGATION_START_DATA:" + xpOrder.getAppUserId();
        }
        //服务中,获取起点到终点的导航数据
        if(xpOrder.getStatus() >= 5){
        if (xpOrder.getStatus() >= 5) {
            key = "ORDER_NAVIGATION_END_DATA:" + xpOrder.getAppUserId();
        }
        Object cacheObject = redisService.getCacheObject(key);