package com.ard.vtdu.api.factory; import com.ard.common.core.domain.R; import com.ard.vtdu.api.RemoteArdVtduService; import com.ard.vtdu.api.domian.ArdVtdu; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; import java.util.List; /** * 流媒体服务降级处理 * * @author ard */ @Component public class RemoteArdVtduFallbackFactory implements FallbackFactory { private static final Logger log = LoggerFactory.getLogger(RemoteArdVtduFallbackFactory.class); @Override public RemoteArdVtduService create(Throwable throwable) { log.error("流媒体服务调用失败:{}", throwable.getMessage()); return new RemoteArdVtduService() { @Override public R> selectVtduList(ArdVtdu ardVtdu, String source) { return R.fail("获取流媒体列表失败:" + throwable.getMessage()); } @Override public R insertVtdu(ArdVtdu ardVtdu, String source) { return R.fail("添加流媒体失败:" + throwable.getMessage()); } @Override public R updateVtdu(ArdVtdu ardVtdu, String source) { return R.fail("更新流媒体失败:" + throwable.getMessage()); } @Override public R removeVtdu(String name, String source) { return R.fail("移除流媒体失败:" + throwable.getMessage()); } @Override public R getInfo(String name, String source) { return R.fail("获取流媒体详情失败:" + throwable.getMessage()); } @Override public R delete(String name, String source) { return R.fail("移除流媒体失败:" + throwable.getMessage()); } @Override public R deleteArdVtduByCameraId(String cameraId, String source) { return R.fail("移除相机所有流媒体失败:" + throwable.getMessage()); } }; } }