diff --git a/xjs-business/xjs-business-english/src/main/java/com/xjs/common/client/BaiduFeignClient.java b/xjs-business/xjs-business-english/src/main/java/com/xjs/common/client/BaiduFeignClient.java index 11ccb869..f4365d62 100644 --- a/xjs-business/xjs-business-english/src/main/java/com/xjs/common/client/BaiduFeignClient.java +++ b/xjs-business/xjs-business-english/src/main/java/com/xjs/common/client/BaiduFeignClient.java @@ -2,6 +2,7 @@ package com.xjs.common.client; import com.alibaba.fastjson.JSONObject; import com.xjs.common.aop.ApiLog; +import com.xjs.common.client.factory.BaiduFeignFactory; import com.xjs.translation.domain.qo.translation.BaiDuTranslationQo; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -11,7 +12,7 @@ import org.springframework.web.bind.annotation.PostMapping; * @desc 百度翻译接口api调用 * @create 2021-12-25 */ -@FeignClient(name = "baidu",url = "http://api.fanyi.baidu.com/api/trans/vip/translate?") +@FeignClient(name = "baidu",url = "http://api.fanyi.baidu.com/api/trans/vip/translate?",fallbackFactory = BaiduFeignFactory.class) public interface BaiduFeignClient { @PostMapping(headers = {"Content-Type=application/x-www-form-urlencoded"}) diff --git a/xjs-business/xjs-business-english/src/main/java/com/xjs/common/client/TianXingFeignClient.java b/xjs-business/xjs-business-english/src/main/java/com/xjs/common/client/TianXingFeignClient.java index 3aab4c25..3a0d3377 100644 --- a/xjs-business/xjs-business-english/src/main/java/com/xjs/common/client/TianXingFeignClient.java +++ b/xjs-business/xjs-business-english/src/main/java/com/xjs/common/client/TianXingFeignClient.java @@ -13,6 +13,7 @@ import org.springframework.web.bind.annotation.GetMapping; * @desc 天行数据朋友圈文案接口api调用 * @create 2021-12-27 */ +@FunctionalInterface @FeignClient(name = "tianXing",url = "http://api.tianapi.com/pyqwenan/index",fallbackFactory = TianXingFeignFactory.class) public interface TianXingFeignClient { diff --git a/xjs-business/xjs-business-english/src/main/java/com/xjs/common/client/factory/BaiduFeignFactory.java b/xjs-business/xjs-business-english/src/main/java/com/xjs/common/client/factory/BaiduFeignFactory.java new file mode 100644 index 00000000..48981807 --- /dev/null +++ b/xjs-business/xjs-business-english/src/main/java/com/xjs/common/client/factory/BaiduFeignFactory.java @@ -0,0 +1,27 @@ +package com.xjs.common.client.factory; + +import com.alibaba.fastjson.JSONObject; +import com.xjs.common.client.BaiduFeignClient; +import lombok.extern.log4j.Log4j2; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +/** + * @author xiejs + * @desc 百度翻译平台服务降级处理类 + * @create 2021-12-28 + */ +@Log4j2 +@Component +public class BaiduFeignFactory implements FallbackFactory { + @Override + public BaiduFeignClient create(Throwable cause) { + log.error("英语模块百度翻译服务调用失败:{},执行降级处理", cause.getMessage()); + return qo -> { + JSONObject jsonObject = new JSONObject(); + //构建一个异常json给下层接口处理 + jsonObject.put("error", 500); + return jsonObject; + }; + } +} diff --git a/xjs-business/xjs-business-english/src/main/java/com/xjs/common/client/factory/TianXingFeignFactory.java b/xjs-business/xjs-business-english/src/main/java/com/xjs/common/client/factory/TianXingFeignFactory.java index c5a3df60..6e3139d9 100644 --- a/xjs-business/xjs-business-english/src/main/java/com/xjs/common/client/factory/TianXingFeignFactory.java +++ b/xjs-business/xjs-business-english/src/main/java/com/xjs/common/client/factory/TianXingFeignFactory.java @@ -2,10 +2,7 @@ package com.xjs.common.client.factory; import com.alibaba.fastjson.JSONObject; import com.xjs.common.client.TianXingFeignClient; -import com.xjs.copywriting.domain.RequestBody; -import com.xjs.copywriting.service.CopyWritingService; import lombok.extern.log4j.Log4j2; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; @@ -17,22 +14,16 @@ import org.springframework.stereotype.Component; @Log4j2 @Component public class TianXingFeignFactory implements FallbackFactory { - @Autowired - private CopyWritingService copyWritingService; @Override public TianXingFeignClient create(Throwable cause) { log.error("英语模块文案服务调用失败:{},执行降级处理", cause.getMessage()); - //没用拉姆达考虑后面该feign接口还会调用其他api接口 - return new TianXingFeignClient() { - @Override - public JSONObject copyWritingApi(RequestBody requestBody) { - JSONObject jsonObject = new JSONObject(); - //构建一个异常json给下层接口处理 - jsonObject.put("error", 500); - return jsonObject; - } - }; + return requestBody -> { + JSONObject jsonObject = new JSONObject(); + //构建一个异常json给下层接口处理 + jsonObject.put("error", 500); + return jsonObject; + }; } diff --git a/xjs-business/xjs-business-english/src/main/java/com/xjs/translation/factory/impl/BaiDuTranslationFactory.java b/xjs-business/xjs-business-english/src/main/java/com/xjs/translation/factory/impl/BaiDuTranslationFactory.java index 44e4e228..675b842a 100644 --- a/xjs-business/xjs-business-english/src/main/java/com/xjs/translation/factory/impl/BaiDuTranslationFactory.java +++ b/xjs-business/xjs-business-english/src/main/java/com/xjs/translation/factory/impl/BaiDuTranslationFactory.java @@ -41,7 +41,9 @@ public class BaiDuTranslationFactory implements TranslationFactory { baiDuTranslationQo.setSign(sign); baiDuTranslationQo.setQ(translationQo.getQ()); JSONObject jsonObject = baiduFeignClient.translationApi(baiDuTranslationQo); - if(Objects.nonNull(jsonObject.getString("error_code"))){ + System.out.println(jsonObject); + //接口内部错误以及网络错误都抛异常 + if(jsonObject.containsKey("error_code") || jsonObject.containsKey("error")){ throw new ApiException("百度翻译接口调用异常"); } TranslationVo translationVo = new TranslationVo();