package com.ard.work.api.factory; import com.ard.common.core.domain.R; import com.ard.work.api.RemoteSDKService; import com.ard.work.api.domian.CameraCmd; import com.ard.work.api.domian.PtzDto; import com.ard.work.api.domian.VideoCompressionCfg; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; import org.springframework.web.bind.annotation.RequestBody; /** * SDK服务降级处理 * * @author ard */ @Component public class RemoteSDKFallbackFactory implements FallbackFactory { private static final Logger log = LoggerFactory.getLogger(RemoteSDKFallbackFactory.class); @Override public RemoteSDKService create(Throwable throwable) { log.error("SDK服务调用失败:{}", throwable.getMessage()); return new RemoteSDKService() { @Override public R getVideoCompressionCfg(CameraCmd cameraCmd) { return R.fail("获取视频压缩参数失败:" + throwable.getMessage()); } @Override public R guideTargetPosition(CameraCmd cameraCmd) { return R.fail("引导目标位置失败:" + throwable.getMessage()); } @Override public R picCutCateRpc(CameraCmd cameraCmd, String bucketName, String objectName, String source) { return R.fail("抓图失败:" + throwable.getMessage()); } @Override public R recordStartRpc(@RequestBody CameraCmd cameraCmd, String source) { return R.fail("开始录像失败:" + throwable.getMessage()); } @Override public R recordStopRpc(@RequestBody CameraCmd cameraCmd, String source) { return R.fail("停止录像失败:" + throwable.getMessage()); } @Override public R picCutCate(CameraCmd cameraCmd) { return R.fail("抓图失败:" + throwable.getMessage()); } @Override public R recordStart(CameraCmd cameraCmd) { return R.fail("开始录像失败:" + throwable.getMessage()); } @Override public R recordStop(CameraCmd cameraCmd) { return R.fail("停止录像失败:" + throwable.getMessage()); } @Override public R setPTZRpc(CameraCmd cmd, String source) { return R.fail("设置PTZ失败:" + throwable.getMessage()); } @Override public R getPTZRpc(CameraCmd cmd, String source) { return R.fail("获取PTZ失败:" + throwable.getMessage()); } }; } }