puzhibing
2026-03-06 7ba0606b45f7e2041ff2acff5c8e1f81d38c23cc
合并代码
1个文件已修改
41 ■■■■■ 已修改文件
xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/XpPricingServiceImpl.java 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/XpPricingServiceImpl.java
@@ -362,11 +362,11 @@
        }
        // 10. 检查等待时间
//        Integer waitTime = getWaitTime(routeAndFareDto.getOrigin().getLongitude(), routeAndFareDto.getOrigin().getLatitude());
//        if (waitTime > 3) {
//            throw new ServiceException("当前区域正在等待中,请耐心等待", I18nKeyConstant.WAITING_TIME);
//        }
//        fareVo.setWaitingTime(waitTime);
        Integer waitTime = getWaitTime(routeAndFareDto.getOrigin().getLongitude(), routeAndFareDto.getOrigin().getLatitude());
        if (waitTime > 3) {
            throw new ServiceException("当前区域正在等待中,请耐心等待", I18nKeyConstant.WAITING_TIME);
        }
        fareVo.setWaitingTime(waitTime);
        // 11. 生成订单ID并缓存
@@ -468,16 +468,16 @@
        }
        // 判断当天取消的次数 后台配置 redis 查询
//        Object cancelOrder = redisService.getCacheObject("CANCEL_ORDER_" + uid);
//        log.info("取消次数:{}", cancelOrder);
//        // 静默处理
//        boolean isSilent = false;
//        if (cancelOrder != null) {
//            Integer num = Integer.valueOf(cancelOrder.toString());
//            if (num >= cancelCount) {
//                isSilent = true;
//            }
//        }
        Object cancelOrder = redisService.getCacheObject("CANCEL_ORDER_" + uid);
        log.info("取消次数:{}", cancelOrder);
        // 静默处理
        boolean isSilent = false;
        if (cancelOrder != null) {
            Integer num = Integer.valueOf(cancelOrder.toString());
            if (num >= cancelCount) {
                isSilent = true;
            }
        }
        // 获取起步里程
@@ -574,10 +574,10 @@
        Long orderId = addOrderR.getData();
        xpOrder.setId(orderId);
        // 静默处理 不推单
//        if (isSilent) {
//            log.info("订单取消次数达到上限,执行静默处理,不推单。");
//            return orderId.toString();
//        }
        if (isSilent) {
            log.info("订单取消次数达到上限,执行静默处理,不推单。");
            return orderId.toString();
        }
        // 最大距离
        Object maxPushDistanceObj = redisService.getCacheObject(CacheConstants.MAX_PUSH_DISTANCE);
@@ -600,12 +600,13 @@
                String value = orderId + "_" + xpPoint.getPointLon() + "," + xpPoint.getPointLat() + "_0" + "_" + uid + "_" + xpOrder.getOrderNumber() + "_" + distance + "_" + duration + "_" + routeAndFareDto.getRoutePlanRule();
                if (isPriorityDispatch) {
                    // 头部  value 订单_经纬度_状态_用户id_订单编号_距离_时间
//                    redisService.addToHead(s, orderId + "_" + xpPoint.getPointLon() + "," + xpPoint.getPointLat() + "_0" + "_" + uid + "_" + xpOrder.getOrderNumber() + "_" + distance + "_" + duration + "_" + routeAndFareDto.getRoutePlanRule());
                    redisService.addToHead(s, value);
                    log.info("添加到队列头部:{} {}", s, value);
                } else {
                    // 尾部
                    redisService.addToTail(s, value);
                    log.info("添加到队列尾部:{} {}", s, value);
                    log.info("添加到队列头部:{} {}", s, value);
                }
                xpOrder.setQueueName(s);
                xpOrderClient.updateOrder(xpOrder);