package com.xiaopeng.api.factory.order; import com.xiaopeng.api.dto.statistics.OrderStatisticsDTO; import com.xiaopeng.api.dto.statistics.StatisticsQueryDTO; import com.xiaopeng.api.feignClient.order.XpOrderClient; import com.xiaopeng.common.core.domain.R; import lombok.extern.slf4j.Slf4j; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; import java.math.BigDecimal; import java.util.ArrayList; /** * 订单Feign客户端降级工厂 * * @author mitao */ @Slf4j @Component public class XpOrderClientFallbackFactory implements FallbackFactory { @Override public XpOrderClient create(Throwable cause) { log.error("订单服务调用失败: {}", cause.getMessage()); return new XpOrderClient() { @Override public R getOrderStatistics(StatisticsQueryDTO query) { log.error("获取订单统计数据失败,原因: {}", cause.getMessage()); // 降级返回空数据 OrderStatisticsDTO dto = new OrderStatisticsDTO(); dto.setTotalCount(0L); dto.setNewCount(0L); dto.setTotalMoney(BigDecimal.ZERO); dto.setTotalIncome(BigDecimal.ZERO); dto.setDailyCountList(new ArrayList<>()); return R.ok(dto); } }; } }