package com.xiaopeng.api.factory.vehicleConvoy; import com.xiaopeng.api.feignClient.vehicleConvoy.XpFleetClient; import com.xiaopeng.api.model.vehicleConvoy.XpFleet; 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.util.ArrayList; import java.util.List; /** * 车队Feign客户端降级工厂 * * @author mitao */ @Slf4j @Component public class XpFleetClientFallbackFactory implements FallbackFactory { @Override public XpFleetClient create(Throwable cause) { log.error("车队服务调用失败: {}", cause.getMessage()); return new XpFleetClient() { @Override public R> listByIds(List ids) { log.error("批量查询车队信息失败,原因: {}", cause.getMessage()); // 降级返回空列表 return R.ok(new ArrayList<>()); } @Override public R getFleetByOperationsUserId(Long operationsUserId) { log.error("通过运营人员id查询车队信息失败,原因: {}", cause.getMessage()); // 降级返回空列表 return R.fail("通过运营人员id查询车队信息失败,"+cause.getMessage()); } @Override public R getUseCountByLocationId(Long locationId) { log.error("查询打卡地被使用次数失败,原因: {}", cause.getMessage()); return R.fail("查询打卡地被使用次数失败"); } @Override public R> idsByFleetName(String fleetName) { log.error("根据车队名称查询ID失败,原因: {}", cause.getMessage()); return R.fail("根据车队名称查询ID失败"); } }; } }