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<FleetOrderAggregateClient> {
|
|
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;
|
}
|
}
|