1./xp-point/getOrderDistance 添加行程策略返回字段
2.路线去重
3.白名单错误修改
4.分享行程增加车辆编码
5.收藏倒叙排序
7个文件已修改
67 ■■■■■ 已修改文件
xp-robotaxi-account-boot/src/main/resources/mapper/account/XpAppUserCollectAddrMapper.xml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpWhitelist.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/ActiveOrderServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/XpPricingServiceImpl.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPointServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/vo/OrderDistanceVo.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/ActiveOrderController.java 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-account-boot/src/main/resources/mapper/account/XpAppUserCollectAddrMapper.xml
@@ -14,7 +14,7 @@
        from xp_app_user_collect_addr c
        where c.app_user_id = #{uid}
          and c.is_deleted = 0
        order by c.create_time asc
        order by c.create_time desc
    </select>
    <select id="selectPointCollectTarget" resultType="com.xiaopeng.account.model.vo.CollectAddrTargetVO">
xp-robotaxi-api/src/main/java/com/xiaopeng/api/model/operation/XpWhitelist.java
@@ -63,13 +63,16 @@
    @ApiModelProperty(value = "用户id 根据手机号获取")
    private Long appUserId;
    public Boolean getStatus() {
        if(expireTime!= null){
            if (LocalDate.now().isAfter(expireTime)) {
                return false;
    /***
     * 在正常情况下 有效期是否过期
     * @return
     */
    public Boolean getIsExpireTime() {
        if(expireTime!= null && status != null){
            if(status){
                return !LocalDate.now().isAfter(expireTime);
            }
            return status;
        }
        return status;
        return false;
    }
}
xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/ActiveOrderServiceImpl.java
@@ -171,7 +171,7 @@
            throw new ServiceException("获取行驶中的车辆信息错误");
        }
        //剩余里程xx米,或者 剩余时间xx分钟 禁止修改目的地
        //获取订单的
        //获取订单的 状态 0=已取消,1=待接单,2=待出发,3=接驾中,4=待客上车,5=乘客已上车,6=服务中,7=待客下车,8=待付款,9=待评价,10=已完成
        if(order.getStatus() == 6){
            Object cacheObject = redisService.getCacheObject(CacheConstants.navigationEnd(uid));
            if(cacheObject != null){
xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/XpPricingServiceImpl.java
@@ -15,6 +15,7 @@
import com.xiaopeng.api.dto.map.RouteAndFareDto;
import com.xiaopeng.api.dto.map.RouteStaleCheckDto;
import com.xiaopeng.api.dto.map.SelectNavigationRouteDto;
import com.xiaopeng.api.dto.operation.LonLatDto;
import com.xiaopeng.api.enums.RouteStrategyKind;
import com.xiaopeng.api.feignClient.account.UserResourcesClient;
import com.xiaopeng.api.feignClient.account.UserRoutePlanRuleClient;
@@ -1141,7 +1142,10 @@
        List<RouteStrategyKind> kinds = planningConfig.getKinds();
        Map<String, RouteVo> routeById = new LinkedHashMap<>();
        Map<String, Set<RouteStrategyKind>> strategiesById = new LinkedHashMap<>();
        for (RouteStrategyKind kind : kinds) {
        Set<List<LonLatDto>> routePoints = new HashSet<>();
        aa: for (RouteStrategyKind kind : kinds) {
            RouteAndFareDto copy = new RouteAndFareDto();
            copy.setOrigin(routeAndFareDto.getOrigin());
            copy.setDestination(routeAndFareDto.getDestination());
@@ -1150,10 +1154,19 @@
            if (r.getCode() != 200 || r.getData() == null || r.getData().getRouteID() == null) {
                continue;
            }
            if(CollUtil.isNotEmpty(routePoints)){
                for (List<LonLatDto> routePoint : routePoints) {
                    if(CollUtil.isEqualList(routePoint, r.getData().getPolyline())){
                        continue aa;
                    }
                }
            }
            routePoints.add(r.getData().getPolyline());
            String fid = r.getData().getRouteID();
            routeById.putIfAbsent(fid, r.getData());
            strategiesById.computeIfAbsent(fid, k -> new LinkedHashSet<>()).add(kind);
        }
        if (routeById.isEmpty()) {
            throw new ServiceException("获取导肮信息失败", I18nKeyConstant.PATH_NOT_FOUND);
        }
@@ -1197,15 +1210,6 @@
            opt.setOperateFree(operateFree);
            options.add(opt);
        }
        // 根据 pathFingerprint 去重,保留第一次出现的路线
//        options = new ArrayList<>(options.stream()
//                .collect(Collectors.toMap(
//                        RouteOptionVo::getPathFingerprint,
//                        option -> option,
//                        (existing, replacement) -> existing,
//                        LinkedHashMap::new
//                )).values());
        RouteStrategyKind userPref = resolveUserPreferredKind(userId).orElse(RouteStrategyKind.SMART);
        options.sort((a, b) -> compareRouteOptionByUserPreference(a, b, userPref, strategiesById));
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/service/impl/XpPointServiceImpl.java
@@ -747,6 +747,12 @@
            orderDistanceVo.setAdsorptionDistance(xpSystemSetting.getAdsorptionDistance());
            orderDistanceVo.setNearPointDistance(xpSystemSetting.getNearPointDistance());
            orderDistanceVo.setTemperatureUnit(xpSystemSetting.getTemperatureUnit());
            orderDistanceVo.setXczSyDistance(xpSystemSetting.getXczSyDistance());
            orderDistanceVo.setXczSyTime(xpSystemSetting.getXczSyTime());
            orderDistanceVo.setXczCaCount(xpSystemSetting.getXczCaCount());
            orderDistanceVo.setXczHmSpeedPerHour(xpSystemSetting.getXczHmSpeedPerHour());
            orderDistanceVo.setXczHmDuration(xpSystemSetting.getXczHmDuration());
            return orderDistanceVo;
        }
        return orderDistanceVo;
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/vo/OrderDistanceVo.java
@@ -32,4 +32,18 @@
    @ApiModelProperty("下单页停留时长")
    private Integer maxStandingTiming;
    @ApiModelProperty(value = "行程中剩余里程")
    private Integer xczSyDistance;
    @ApiModelProperty(value = "行程中剩余时间")
    private Integer xczSyTime;
    @ApiModelProperty(value = "行程中修改目地次数")
    private Integer xczCaCount;
    @ApiModelProperty(value = "行程中豁免时速 km/h")
    private Integer xczHmSpeedPerHour;
    @ApiModelProperty(value = "行程中豁免持续时间 分钟")
    private Integer xczHmDuration;
}
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/controller/ActiveOrderController.java
@@ -100,6 +100,9 @@
            key = "ORDER_NAVIGATION_END_DATA:" + xpOrder.getAppUserId();
        }
        Object cacheObject = redisService.getCacheObject(key);
        if(cacheObject == null){
            return R.fail("获取路线失败");
        }
        RouteVo routeVo = JSON.parseObject(cacheObject.toString(), RouteVo.class);
        XpVehicle xpVehicle = xpVehicleClient.queryById(xpOrder.getVehicleId()).getData();
        VehiclePosition vehiclePosition = mongoTemplate.findOne(new Query(Criteria.where("vin").is(xpVehicle.getVehicleVin())), VehiclePosition.class);
@@ -162,6 +165,7 @@
            xpOrderDetailVO.setVehicleId(vehicle.getId());
            xpOrderDetailVO.setVehicleVin(vehicle.getVehicleVin());
            xpOrderDetailVO.setVehicleModel(vehicle.getVehicleModelName());
            xpOrderDetailVO.setVehicleCode(vehicle.getVehicleCode());
            xpOrderDetailVO.setVehicleColor(vehicle.getVehicleColor());
            xpOrderDetailVO.setPlateNumber(vehicle.getPlateNumber());
            xpOrderDetailVO.setVehiclePictures(vehicle.getVehiclePictures());