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<AdcFencePushClient> {
|
|
@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<String> 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());
|
}
|
};
|
}
|
}
|