package com.xiaopeng.api.factory.map; import com.xiaopeng.api.feignClient.map.AdcFencePushClient; import com.xiaopeng.common.core.domain.R; import lombok.extern.slf4j.Slf4j; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; /** * ADC 围栏推送 Feign 降级工厂 */ @Slf4j @Component public class AdcFencePushClientFallbackFactory implements FallbackFactory { @Override public AdcFencePushClient create(Throwable cause) { log.error("ADC围栏推送服务调用失败: {}", cause.getMessage()); return new AdcFencePushClient() { @Override public R pushFenceToVehicle(String vehicleVin, Long electronicId) { log.error("单车推送降级, vin={}, electronicId={}", vehicleVin, electronicId); return R.fail("ADC推送服务不可用: " + cause.getMessage()); } @Override public R pushFenceToVehicles(Long electronicId) { log.error("围栏推送降级, electronicId={}", electronicId); return R.fail("ADC推送服务不可用: " + cause.getMessage()); } @Override public R getMapVersion(String vin) { log.error("查询地图版本降级, vin={}", vin); return R.fail("ADC推送服务不可用: " + cause.getMessage()); } @Override public R manualPush(Long electronicId) { log.error("手动推送降级, electronicId={}", electronicId); return R.fail("ADC推送服务不可用: " + cause.getMessage()); } @Override public R manualPushToVehicle(String vehicleVin, Long electronicId) { log.error("手动单车推送降级, vin={}, electronicId={}", vehicleVin, electronicId); return R.fail("ADC推送服务不可用: " + cause.getMessage()); } }; } }