package com.ruoyi.other.api.factory; import com.ruoyi.common.core.domain.R; import com.ruoyi.other.api.feignClient.FleetOrderAggregateClient; import com.ruoyi.other.api.vo.FleetOrderAggregateVO; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; /** * 车队订单聚合 Feign 调用失败兜底:返回 0 三列(前端渲染为 -)。 * 聚合服务异常不应阻塞车队列表加载,故采用"软失败"策略。 */ @Component public class FleetOrderAggregateFallbackFactory implements FallbackFactory { private static final Logger log = LoggerFactory.getLogger(FleetOrderAggregateFallbackFactory.class); @Override public FleetOrderAggregateClient create(Throwable cause) { log.warn("[FleetOrderAggregate] feign fallback, cause={}", cause == null ? "null" : cause.toString()); return fleetId -> R.ok(empty()); } private FleetOrderAggregateVO empty() { FleetOrderAggregateVO vo = new FleetOrderAggregateVO(); vo.setCumulativeCharge(java.math.BigDecimal.ZERO); vo.setCumulativeElectrovalence(java.math.BigDecimal.ZERO); vo.setCumulativeServiceCharge(java.math.BigDecimal.ZERO); return vo; } }