puzhibing
2026-04-17 3858fa1d34d269865551465dc6667b3bcd86fd6c
Merge remote-tracking branch 'origin/1.0' into 1.0
1个文件已删除
2个文件已添加
6个文件已修改
310 ■■■■■ 已修改文件
xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/operation/XpPricingClient.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/service/BootCommonService.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/BootCommonService.java 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/XpPricingServiceImpl.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpPricingController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/OrderApplication.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/BootCommonService.java 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpTestOrderServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
xp-robotaxi-api/src/main/java/com/xiaopeng/api/feignClient/operation/XpPricingClient.java
@@ -22,7 +22,7 @@
    // 根据开通城市 获取定价
    @GetMapping("/logan/inner/v1/getPricingByCid")
     R<XpPricing> getPricingByCid(@RequestParam Long cityId,@RequestParam(required = false) String vehicleModelId);
     R<XpPricing> getPricingByCid(@RequestParam(value = "cityId") Long cityId,@RequestParam(value = "vehicleModelId",required = false) String vehicleModelId);
    /**
     * 保存XpGeoQueryEntity
xp-robotaxi-api/src/main/java/com/xiaopeng/api/service/BootCommonService.java
File was deleted
xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/BootCommonService.java
New file
@@ -0,0 +1,99 @@
package com.xiaopeng.itinerary.service;
import com.xiaopeng.api.feignClient.operation.XpPricingClient;
import com.xiaopeng.api.feignClient.order.XpOrderClient;
import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient;
import com.xiaopeng.api.model.operation.XpPricing;
import com.xiaopeng.api.model.order.XpOrder;
import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.exception.ServiceException;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class BootCommonService {
    @Resource
    private  XpPricingClient xpPricingClient;
    @Resource
    private  XpVehicleClient xpVehicleClient;
    @Resource
    private XpOrderClient xpOrderClient;
//    @Override 测试
    public XpOrder getXpOrder(Long orderId) {
        R<XpOrder> xpOrderR = xpOrderClient.queryOrderById(orderId);
        if (xpOrderR.getCode() != R.SUCCESS || xpOrderR.getData() == null) {
            throw new ServiceException("订单不存在");
        }
        return xpOrderR.getData();
    }
//    @Override
    public XpVehicle getXpVehicle(Long vehicleId) {
        R<XpVehicle>  xpVehicleR = xpVehicleClient.queryById(vehicleId);
        if (xpVehicleR.getCode() != R.SUCCESS || xpVehicleR.getData() == null) {
            throw new ServiceException("车型不存在");
        }
        return xpVehicleR.getData();
    }
//    @Override
    public String getVehicleModelId(Long orderId) {
        if(orderId!= null){
            XpOrder xpOrder = getXpOrder(orderId);
            XpVehicle xpVehicle = getXpVehicle(xpOrder.getVehicleId());
            return xpVehicle.getVehicleModel();
        }
        return null;
    }
//    @Override
    public XpPricing getPricingByCid(Long cityId, String vehicleModelId) {
        R<XpPricing> xpPricingR = xpPricingClient.getPricingByCid(cityId,vehicleModelId);
        if (xpPricingR.getCode() != R.SUCCESS || xpPricingR.getData() == null) {
            throw new ServiceException("当前城市未配置定价规则");
//            throw new ServiceException("当前区域未开通服务");
        }
        return xpPricingR.getData();
    }
//    @Override
    public XpPricing getXpPricing(Long orderId) {
        if(orderId != null){
            XpOrder xpOrder = getXpOrder(orderId);
            return getXpPricing(xpOrder.getCityId(),xpOrder.getVehicleId());
        }
        return null;
    }
//    @Override
    public XpPricing getXpPricing(Long cityId, Long vehicleId) {
        String vehicleModelId = null;
        if(vehicleId != null){
            XpVehicle xpVehicle = getXpVehicle(vehicleId);
            vehicleModelId = xpVehicle.getVehicleModel();
        }
        return getPricingByCid(cityId, vehicleModelId);
    }
//    @Override
    public XpPricing getXpPricing(Long cityId, Long orderId, Long vehicleId) {
        String vehicleModelId = null;
        if(vehicleId != null ){
            XpVehicle xpVehicle = getXpVehicle(vehicleId);
            vehicleModelId = xpVehicle.getVehicleModel();
        }
        if(vehicleModelId != null){
            if(orderId != null ){
                vehicleModelId = getVehicleModelId(orderId);
            }
        }
        return getPricingByCid(cityId, vehicleModelId);
    }
}
xp-robotaxi-itinerary-boot/src/main/java/com/xiaopeng/itinerary/service/impl/XpPricingServiceImpl.java
@@ -22,16 +22,8 @@
import com.xiaopeng.api.model.account.XpUserRoutePlanRule;
import com.xiaopeng.api.model.operation.*;
import com.xiaopeng.api.model.order.XpOrder;
import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
import com.xiaopeng.api.service.BootCommonService;
import com.xiaopeng.api.vo.account.UserCouponVo;
import com.xiaopeng.api.vo.operation.FareVo;
import com.xiaopeng.api.vo.operation.MultiRouteAndFareVo;
import com.xiaopeng.api.vo.operation.RouteAndFareVo;
import com.xiaopeng.api.vo.operation.RouteOptionVo;
import com.xiaopeng.api.vo.operation.RoutePreferenceItemVo;
import com.xiaopeng.api.vo.operation.RouteStaleCheckVo;
import com.xiaopeng.api.vo.operation.RouteVo;
import com.xiaopeng.api.vo.operation.*;
import com.xiaopeng.api.vo.order.XpPricingCardVo;
import com.xiaopeng.common.core.constant.CacheConstants;
import com.xiaopeng.common.core.domain.R;
@@ -40,16 +32,17 @@
import com.xiaopeng.common.redis.service.RedisService;
import com.xiaopeng.itinerary.constant.I18nKeyConstant;
import com.xiaopeng.itinerary.dto.XpOrderDto;
import com.xiaopeng.itinerary.navigation.MultiRouteSnapshotPayload;
import com.xiaopeng.itinerary.mapper.*;
import com.xiaopeng.itinerary.navigation.MultiRouteSnapshotPayload;
import com.xiaopeng.itinerary.service.BootCommonService;
import com.xiaopeng.itinerary.service.IXpGeoQueryEntityService;
import com.xiaopeng.itinerary.service.XpPointService;
import com.xiaopeng.itinerary.service.XpPricingService;
import com.xiaopeng.itinerary.vo.QueueStatusVo;
import com.xiaopeng.itinerary.utils.XpPricingUtil;
import com.xiaopeng.itinerary.utils.holiday.HolidayUtil;
import com.xiaopeng.itinerary.utils.map.FastDistanceCalculator;
import com.xiaopeng.itinerary.utils.map.GDMapGeocodingUtil;
import com.xiaopeng.itinerary.vo.QueueStatusVo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -217,7 +210,7 @@
        if(vehicleModel != null){
            queryWrapper.eq(XpPricing::getVehicleModel, vehicleModel);
        }
        return super.getOne(queryWrapper,true);
        return super.getOne(queryWrapper);
    }
@@ -245,17 +238,12 @@
        if (openCities == null ) {
            throw new ServiceException("获取城市信息失败", I18nKeyConstant.CITY_NOT_FOUND);
        }
        routeAndFareDto.setOpenCityId(openCities.getId());
        //根据订单获取车型 获取定价策略
        String vehicleModel = bootCommonService.getVehicleModelId(routeAndFareDto.getOrderId());
        XpPricing xpPricing = this.getInfo(routeAndFareDto.getOpenCityId(),vehicleModel);
        XpPricing xpPricing = bootCommonService.getXpPricing(routeAndFareDto.getOpenCityId(), routeAndFareDto.getOrderId(), null);
        if (xpPricing == null) {
            throw new ServiceException("当前区域未开通服务", I18nKeyConstant.NO_CURRENT_REGION);
        }
        XpOpenCity xpOpenCity = openCities;
        routeAndFareDto.setOpenCityId(xpOpenCity.getId());
        List<XpRoutePlan> xpRoutePlan = xpRoutePlanMapper.selectList(new LambdaQueryWrapper<XpRoutePlan>().eq(XpRoutePlan::getAuditStatus, 2).eq(XpRoutePlan::getCityCode, cityCode));
        // 找出用户偏好
xp-robotaxi-operation-boot/src/main/java/com/xiaopeng/operation/controller/XpPricingController.java
@@ -80,8 +80,9 @@
    }
    // 根据开通城市 获取定价
    @GetMapping("/logan/inner/v1/getPricingByCid")
    public R<XpPricing> getPricingByCid(@RequestParam Long cityId,@RequestParam(required = false) String vehicleModelId) {
    public R<XpPricing> getPricingByCid(@RequestParam("cityId") Long cityId,@RequestParam(value = "vehicleModelId", required = false) String vehicleModelId) {
        LambdaQueryWrapper<XpPricing> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(XpPricing::getDeleted, 0);
        queryWrapper.eq(XpPricing::getCityId, cityId);
        if(null != vehicleModelId){
            queryWrapper.eq(XpPricing::getVehicleModel, vehicleModelId);
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/OrderApplication.java
@@ -7,6 +7,8 @@
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ComponentScans;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/BootCommonService.java
New file
@@ -0,0 +1,101 @@
package com.xiaopeng.order.service;
import com.xiaopeng.api.feignClient.operation.XpPricingClient;
import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient;
import com.xiaopeng.api.model.operation.XpPricing;
import com.xiaopeng.api.model.order.XpOrder;
import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
import com.xiaopeng.common.core.domain.R;
import com.xiaopeng.common.core.exception.ServiceException;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@Service
public class BootCommonService   {
    @Resource
    private  XpPricingClient xpPricingClient;
    @Resource
    private  XpVehicleClient xpVehicleClient;
    @Resource
    @Lazy
    private IXpOrderService xpOrderService;
//    @Override
    public XpOrder getXpOrder(Long orderId) {
        XpOrder xpOrder = xpOrderService.getById(orderId);
        if (xpOrder == null) {
            throw new ServiceException("订单不存在");
        }
        return xpOrder;
    }
//    @Override
    public XpVehicle getXpVehicle(Long vehicleId) {
        R<XpVehicle>  xpVehicleR = xpVehicleClient.queryById(vehicleId);
        if (xpVehicleR.getCode() != R.SUCCESS || xpVehicleR.getData() == null) {
            throw new ServiceException("车型不存在");
        }
        return xpVehicleR.getData();
    }
//    @Override
    public String getVehicleModelId(Long orderId) {
        if(orderId!= null){
            XpOrder xpOrder = getXpOrder(orderId);
            XpVehicle xpVehicle = getXpVehicle(xpOrder.getVehicleId());
            return xpVehicle.getVehicleModel();
        }
        return null;
    }
//    @Override
    public XpPricing getPricingByCid(Long cityId, String vehicleModelId) {
        R<XpPricing> xpPricingR = xpPricingClient.getPricingByCid(cityId,vehicleModelId);
        if (xpPricingR.getCode() != R.SUCCESS || xpPricingR.getData() == null) {
            throw new ServiceException("当前城市未配置定价规则");
//            throw new ServiceException("当前区域未开通服务");
        }
        return xpPricingR.getData();
    }
//    @Override
    public XpPricing getXpPricing(Long orderId) {
        if(orderId != null){
            XpOrder xpOrder = getXpOrder(orderId);
            return getXpPricing(xpOrder.getCityId(),xpOrder.getVehicleId());
        }
        return null;
    }
//    @Override
    public XpPricing getXpPricing(Long cityId, Long vehicleId) {
        String vehicleModelId = null;
        if(vehicleId != null){
            XpVehicle xpVehicle = getXpVehicle(vehicleId);
            vehicleModelId = xpVehicle.getVehicleModel();
        }
        return getPricingByCid(cityId, vehicleModelId);
    }
//    @Override
    public XpPricing getXpPricing(Long cityId, Long orderId, Long vehicleId) {
        String vehicleModelId = null;
        if(vehicleId != null ){
            XpVehicle xpVehicle = getXpVehicle(vehicleId);
            vehicleModelId = xpVehicle.getVehicleModel();
        }
        if(vehicleModelId != null){
            if(orderId != null ){
                vehicleModelId = getVehicleModelId(orderId);
            }
        }
        return getPricingByCid(cityId, vehicleModelId);
    }
}
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -3,8 +3,8 @@
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.IdUtil;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -35,13 +35,15 @@
import com.xiaopeng.api.feignClient.map.XpMapClient;
import com.xiaopeng.api.feignClient.operation.*;
import com.xiaopeng.api.feignClient.pushMessage.XpPushMessageClient;
import com.xiaopeng.api.feignClient.vehicleConvoy.*;
import com.xiaopeng.api.feignClient.vehicleConvoy.UserVehicleClient;
import com.xiaopeng.api.feignClient.vehicleConvoy.XpFleetClient;
import com.xiaopeng.api.feignClient.vehicleConvoy.XpFleetVehicleClient;
import com.xiaopeng.api.feignClient.vehicleConvoy.XpVehicleClient;
import com.xiaopeng.api.model.maintenance.XpTaskRule;
import com.xiaopeng.api.model.operation.*;
import com.xiaopeng.api.model.order.*;
import com.xiaopeng.api.model.vehicleConvoy.XpFleet;
import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
import com.xiaopeng.api.service.BootCommonService;
import com.xiaopeng.api.vo.OrderType;
import com.xiaopeng.api.vo.account.UserCouponVo;
import com.xiaopeng.api.vo.automaticPilot.VehiclePosition;
@@ -87,8 +89,8 @@
import com.xiaopeng.order.model.vo.*;
import com.xiaopeng.order.service.*;
import com.xiaopeng.order.utils.GDMapGeocodingUtil;
import com.xiaopeng.order.utils.TaxiPricingDemoService;
import com.xiaopeng.order.utils.RegionCodeFilterUtil;
import com.xiaopeng.order.utils.TaxiPricingDemoService;
import com.xiaopeng.order.utils.XpPricingUtil;
import com.xiaopeng.order.utils.holiday.HolidayUtil;
import com.xiaopeng.order.vo.OrderDetailVo;
@@ -162,6 +164,7 @@
    @Resource
    private  XpRoutePlanClient xpRoutePlanClient;
    @Resource
    @Lazy
    private BootCommonService bootCommonService;
@@ -2042,7 +2045,6 @@
        if (pricing == null) {
            throw new ServiceException("当前城市未配置定价规则", I18nKeyConstant.ORDER_PRICING_NOT_EXISTS);
        }
        // 费用
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpTestOrderServiceImpl.java
@@ -29,7 +29,6 @@
import com.xiaopeng.api.model.order.*;
import com.xiaopeng.api.model.vehicleConvoy.XpFleet;
import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
import com.xiaopeng.api.service.BootCommonService;
import com.xiaopeng.api.vo.OrderType;
import com.xiaopeng.api.vo.automaticPilot.VehiclePosition;
import com.xiaopeng.api.vo.automaticPilot.protobuf.OrderOperationType;
@@ -60,10 +59,7 @@
import com.xiaopeng.order.model.vo.AddTestOrderVo;
import com.xiaopeng.order.model.vo.XpTestOrderDetailVO;
import com.xiaopeng.order.model.vo.XpTestOrderPageVO;
import com.xiaopeng.order.service.IXpOrderEvaluateService;
import com.xiaopeng.order.service.IXpOrderReassignService;
import com.xiaopeng.order.service.IXpTestOrderCancelService;
import com.xiaopeng.order.service.IXpTestOrderService;
import com.xiaopeng.order.service.*;
import com.xiaopeng.order.utils.GDMapGeocodingUtil;
import com.xiaopeng.order.utils.TaxiPricingDemoService;
import com.xiaopeng.order.utils.XpPricingUtil;