puzhibing
2026-04-28 5f4b99714b633c9c838d94ccc240ab23333e3343
xp-robotaxi-order-boot/src/main/java/com/xiaopeng/order/service/impl/XpOrderServiceImpl.java
@@ -46,6 +46,7 @@
import com.xiaopeng.api.model.vehicleConvoy.XpFleet;
import com.xiaopeng.api.model.vehicleConvoy.XpVehicle;
import com.xiaopeng.api.vo.OrderType;
import com.xiaopeng.api.vo.account.CalculateDiscountAmountVo;
import com.xiaopeng.api.vo.account.UserCouponVo;
import com.xiaopeng.api.vo.automaticPilot.VehiclePosition;
import com.xiaopeng.api.vo.automaticPilot.protobuf.OrderOperationType;
@@ -3096,8 +3097,15 @@
    }
    @Override
    public R<FareBreakdownVo> fareBreakdown(Long orderId, String uid) {
        XpOrder order = this.getById(orderId);
    public R<FareBreakdownVo> fareBreakdown(com.xiaopeng.order.vo.FareBreakdownVo vo, String uid) {
        XpOrder order = this.getById(vo.getOrderId());
        //根据新的优惠券计算优惠金额
        if(null != order.getCouponId()){
            CalculateDiscountAmountVo discountAmountVo = new CalculateDiscountAmountVo();
            BigDecimal data = xpAppUserCouponClient.calculateDiscountAmount(discountAmountVo).getData();
            order.setCouponId(vo.getUserCouponId());
            order.setCouponMoney(data);
        }
        order.setAppUserId(null);
        FareBreakdownVo res = new FareBreakdownVo();
        res.setChangeMoneyFlag(order.getChangeMoneyFlag());
@@ -3107,7 +3115,7 @@
        List<FareBreakdownDetailVo> duration = new ArrayList<>();
        List<FareBreakdownDetailVo> longDistance = new ArrayList<>();
        List<XpOrderDetail> xpOrderDetails = xpOrderDetailMapper.selectList(new LambdaQueryWrapper<XpOrderDetail>().eq(XpOrderDetail::getOrderId, orderId));
        List<XpOrderDetail> xpOrderDetails = xpOrderDetailMapper.selectList(new LambdaQueryWrapper<XpOrderDetail>().eq(XpOrderDetail::getOrderId, vo.getOrderId()));
        for (XpOrderDetail xpOrderDetail : xpOrderDetails) {
            FareBreakdownDetailVo detail = new FareBreakdownDetailVo();
            detail.setType(xpOrderDetail.getType());
@@ -3131,6 +3139,7 @@
        res.setDuration(duration);
        res.setLongDistance(longDistance);
        res.setRedPacketMoney(order.getRedPacketMoney());
        res.setUserCouponId(order.getCouponId());
        res.setCouponMoney(order.getCouponMoney());
        res.setOrderMoney(order.getOrderMoney());
        res.setKilometer(order.getMileageKilometers() == null ? BigDecimal.ZERO : BigDecimal.valueOf(order.getMileageKilometers()).multiply(BigDecimal.valueOf(1000)));
@@ -3149,6 +3158,8 @@
        return R.ok(res);
    }
    @Override
    public R payment(XpOrderPayDto dto, String uid) {
        // mvp版本不做支付 使用优惠券抵扣为0元订单处理 处理订单状态即可