liujie
2026-03-15 d0df3ff57cba8986e0474f9df4195be5aa5c9b88
修改bug
3个文件已修改
67 ■■■■■ 已修改文件
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpOrderController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/IXpOrderService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/XpOrderController.java
@@ -404,15 +404,16 @@
    @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);
            Boolean b = xpOrderService.endTrip(orderId, uid);
            return R.ok(b);
        } catch (Exception e) {
            return R.ok();
        }
        return R.ok();
    }
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/IXpOrderService.java
@@ -159,7 +159,7 @@
     */
    R<String> updateOrderStatus(Long orderId, Integer status);
    void endTrip(Long orderId, String uid);
    Boolean endTrip(Long orderId, String uid);
    /**
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -1229,19 +1229,19 @@
        }
        // 消息推送
        Map<String, Object> params = new HashMap<>();
        Map<String, Object> content = new HashMap<>();
        content.put("orderId", order.getId().toString());
        content.put("status", OrderStatusEnum.CANCELED.getCode());
        params.put("type", PushMessageTypeEnum.ORDER_STATUS.getDesc());
        params.put("content", JSONObject.toJSONString(content));
        params.put("timestamp", new Date().getTime() + "");
        String message = JSONObject.toJSONString(params);
        SendMessageDTO sendMessageDTO = new SendMessageDTO();
        sendMessageDTO.setMessage(message);
        sendMessageDTO.setAppUserId(uid);
        xpPushMessageClient.sendStatus(sendMessageDTO);
        log.info("订单取消消息推送完毕");
//        Map<String, Object> params = new HashMap<>();
//        Map<String, Object> content = new HashMap<>();
//        content.put("orderId", order.getId().toString());
//        content.put("status", OrderStatusEnum.CANCELED.getCode());
//        params.put("type", PushMessageTypeEnum.ORDER_STATUS.getDesc());
//        params.put("content", JSONObject.toJSONString(content));
//        params.put("timestamp", new Date().getTime() + "");
//        String message = JSONObject.toJSONString(params);
//        SendMessageDTO sendMessageDTO = new SendMessageDTO();
//        sendMessageDTO.setMessage(message);
//        sendMessageDTO.setAppUserId(uid);
//        xpPushMessageClient.sendStatus(sendMessageDTO);
//        log.info("订单取消消息推送完毕");
        // 移除mongo数据
        xpPricingClient.deleteXpGeoQueryEntity(order.getId().toString());
@@ -1465,7 +1465,7 @@
    }
    @Override
    public void endTrip(Long orderId, String uid) {
    public Boolean endTrip(Long orderId, String uid) {
        List<XpOrderDetail> xpOrderDetails = new ArrayList<>();
        // 起步价格明细
        List<FareBreakdownDetailVo> start = new ArrayList<>();
@@ -1827,26 +1827,42 @@
        if (order.getCouponId() != null) {
            UseUserCouponDto useUserCouponDto = new UseUserCouponDto();
            useUserCouponDto.setUserId(Long.valueOf(uid));
            useUserCouponDto.setTotalAmount(order.getOrderMoney().doubleValue());
            useUserCouponDto.setOpenCityId(order.getCityId());
            useUserCouponDto.setOrderId(orderId);
            useUserCouponDto.setUserCouponId(order.getCouponId());
            xpAppUserCouponClient.useUserCoupon(useUserCouponDto);
//            UseUserCouponDto useUserCouponDto = new UseUserCouponDto();
//            useUserCouponDto.setUserId(Long.valueOf(uid));
//            useUserCouponDto.setTotalAmount(order.getOrderMoney().doubleValue());
//            useUserCouponDto.setOpenCityId(order.getCityId());
//            useUserCouponDto.setOrderId(orderId);
//            useUserCouponDto.setUserCouponId(order.getCouponId());
//            xpAppUserCouponClient.useUserCoupon(useUserCouponDto);
        }
        // 计算完价格后 挑选优惠券
        GetUserCouponDto getUserCouponDto = new GetUserCouponDto();
        getUserCouponDto.setUserId(Long.valueOf(uid));
        getUserCouponDto.setTotalAmount(order.getOrderMoney().doubleValue());
        getUserCouponDto.setUserCouponId(order.getCouponId());
        getUserCouponDto.setOpenCityId(order.getCityId());
        R<UserCouponVo> userCouponVoR = xpAppUserCouponClient.getUserCoupon(getUserCouponDto);
        UserCouponVo userCouponVo = userCouponVoR.getData();
        // 提示是否换券
        boolean tip =false;
        if (userCouponVo != null) {
            // 重新选券
            if(userCouponVo.getStatus()==2){
                getUserCouponDto.setUserId(Long.valueOf(uid));
                getUserCouponDto.setTotalAmount(order.getOrderMoney().doubleValue());
                getUserCouponDto.setUserCouponId(order.getCouponId());
                getUserCouponDto.setOpenCityId(order.getCityId());
                userCouponVoR = xpAppUserCouponClient.getUserCoupon(getUserCouponDto);
                userCouponVo = userCouponVoR.getData();
                tip=true;
            }
            order.setCouponId(userCouponVo.getId());
            order.setCouponMoney(BigDecimal.valueOf(userCouponVo.getMoney()));
        }
        order.setAppUserId(null);
        baseMapper.updateById(order);
        return tip;
    }