puzhibing
2026-05-16 b3d1411517baca17d92dcfe3a0933cdc342b3145
xp-robotaxi-api/src/main/java/com/xiaopeng/api/factory/order/XpOrderClientFallbackFactory.java
@@ -1,17 +1,21 @@
package com.xiaopeng.api.factory.order;
import com.xiaopeng.api.dto.order.GetOrderNumDto;
import com.xiaopeng.api.dto.order.PopOrderDto;
import com.xiaopeng.api.dto.statistics.OrderStatisticsDTO;
import com.xiaopeng.api.dto.statistics.StatisticsQueryDTO;
import com.xiaopeng.api.feignClient.order.XpOrderClient;
import com.xiaopeng.api.model.order.XpOrder;
import com.xiaopeng.api.vo.order.OrderTrajectoryVo;
import com.xiaopeng.common.core.domain.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.cloud.openfeign.FallbackFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestParam;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
/**
 * 订单Feign客户端降级工厂
@@ -46,6 +50,12 @@
            }
            @Override
            public R<Long> hasUnPayOrder(String uid) {
                log.error("查询未支付订单失败,原因: {}", cause.getMessage());
                return R.ok(0L);
            }
            @Override
            public R<XpOrder> queryOrderById(Long orderId) {
                log.error("根据订单id查询订单信息查询失败,原因: {}", cause.getMessage());
                return R.fail("根据订单id查询订单信息查询失败" + cause.getMessage());
@@ -75,6 +85,78 @@
                log.error("获取订单数量失败,原因: {}", cause.getMessage());
                return R.fail();
            }
            @Override
            public R<Integer> todayCancellationCount(Long userId) {
                log.error("获取当日取消订单次数失败,原因: {}", cause.getMessage());
                return R.fail("获取当日取消订单次数失败");
            }
            @Override
            public R<Integer> countActiveOrdersByCityId(Long cityId) {
                log.error("查询进行中订单数量失败,原因: {}", cause.getMessage());
                return R.ok(0);
            }
            @Override
            public R<?> popOrder(PopOrderDto dto) {
                log.error("订单出队失败,原因: {}", cause.getMessage());
                return R.fail();
            }
            @Override
            public R<?> updateOrder(XpOrder xpOrder) {
                log.error("更新订单失败,原因: {}", cause.getMessage());
                return R.fail();
            }
            @Override
            public R<String> updateOrderStatus(Long orderId, Integer status) {
                log.error("更新订单状态失败,原因: {}", cause.getMessage());
                return R.fail("更新订单状态失败");
            }
            @Override
            public R<String> carAbnormalUpdateOrderStatus(Long orderId) {
                return null;
            }
            @Override
            public R<String> saveVehicleLocation(OrderTrajectoryVo orderTrajectory) {
                log.error("保存订单轨迹数据失败,原因: {}", cause.getMessage());
                return R.fail("保存订单轨迹数据失败");
            }
            @Override
            public R<Integer> determineUserType(Long userId) {
                log.error("确定用户类型失败,原因: {}", cause.getMessage());
                return R.fail("确定用户类型失败");
            }
            @Override
            public R<Long> getUserOrderNum(Long userId) {
                log.error("获取用户订单数量失败,原因: {}", cause.getMessage());
                return R.fail("获取用户订单数量失败");
            }
            @Override
            public R<List<Long>> getUserTypeIdList(Integer userType) {
                return R.fail("获取各类型用户数据失败");
            }
            @Override
            public R<?> addNewCruiseMission(String orderId) {
                return R.fail("生成巡游单失败");
            }
            @Override
            public R<?> againPushOrder(String orderId) {
                return R.fail("再次推送订单失败");
            }
        };
    }
}