diff --git a/xjs-business/xjs-business-common/src/main/java/com/xjs/consts/ApiConst.java b/xjs-business/xjs-business-common/src/main/java/com/xjs/consts/ApiConst.java index 5ee35311..70a51812 100644 --- a/xjs-business/xjs-business-common/src/main/java/com/xjs/consts/ApiConst.java +++ b/xjs-business/xjs-business-common/src/main/java/com/xjs/consts/ApiConst.java @@ -72,6 +72,8 @@ public class ApiConst { public static final String LQ_POISON_CHICKEN = "零七-毒鸡汤"; + public static final String LQ_A_WORD = "零七-一言"; + //-------------------url------------------------------ @@ -167,12 +169,14 @@ public class ApiConst { public static final String LQ_DOG_DIARY_URL = "https://api.oick.cn/dog/api.php"; /** - *https://api.oick.cn/dutang/ + * 接口文档:https://api.oick.cn/dutang/ */ public static final String LQ_POISON_CHICKEN_URL = "https://api.oick.cn/dutang/api.php"; - - + /** + * 接口文档:https://api.oick.cn/yiyan/ + */ + public static final String LQ_A_WORD_URL = "https://api.oick.cn/yiyan/api.php"; //-----------------------api请求参数常量----------------------------- diff --git a/xjs-business/xjs-business-common/src/main/java/com/xjs/consts/TianXingConst.java b/xjs-business/xjs-business-common/src/main/java/com/xjs/consts/TianXingConst.java index a0a35162..e0910d72 100644 --- a/xjs-business/xjs-business-common/src/main/java/com/xjs/consts/TianXingConst.java +++ b/xjs-business/xjs-business-common/src/main/java/com/xjs/consts/TianXingConst.java @@ -31,4 +31,6 @@ public class TianXingConst { public static final Integer TGRJ= 6; //毒鸡汤 public static final Integer DJT= 7; + //一言 + public static final Integer YY= 8; } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/api/lq/LqAWordFeignClient.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/api/lq/LqAWordFeignClient.java new file mode 100644 index 00000000..a5dd6d4b --- /dev/null +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/api/lq/LqAWordFeignClient.java @@ -0,0 +1,23 @@ +package com.xjs.common.client.api.lq; + +import com.xjs.annotation.ApiLog; +import com.xjs.common.client.factory.LqAWordFeignFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; + +import static com.xjs.consts.ApiConst.LQ_A_WORD; +import static com.xjs.consts.ApiConst.LQ_A_WORD_URL; + +/** + * 零七平台 一言 feign + * @author xiejs + * @since 2022-02-14 + */ +@FeignClient(name = "lqAWord", url = LQ_A_WORD_URL, fallbackFactory = LqAWordFeignFactory.class) +public interface LqAWordFeignClient { + @GetMapping( headers ={ "Accept-Encoding=''"})//解决响应乱码 + @ApiLog(name = LQ_A_WORD, + url = LQ_A_WORD_URL, + method = "Get") + String aWordApi(); +} diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/LqAWordFeignFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/LqAWordFeignFactory.java new file mode 100644 index 00000000..74bc8247 --- /dev/null +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/LqAWordFeignFactory.java @@ -0,0 +1,20 @@ +package com.xjs.common.client.factory; + +import com.xjs.common.client.api.lq.LqAWordFeignClient; +import lombok.extern.log4j.Log4j2; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +/** + * @author xiejs + * @since 2022-02-14 + */ +@Component +@Log4j2 +public class LqAWordFeignFactory implements FallbackFactory { + @Override + public LqAWordFeignClient create(Throwable cause) { + log.error("api模块零七-一言服务调用失败:{},执行降级处理", cause.getMessage()); + return () -> ""; + } +} diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/controller/CopyWritingController.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/controller/CopyWritingController.java index 82ca34b7..0cee1609 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/controller/CopyWritingController.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/controller/CopyWritingController.java @@ -53,6 +53,8 @@ public class CopyWritingController extends BaseController { private CopyWritingFactory lqDogDiaryCopyWritingFactory; @Autowired private CopyWritingFactory lqPoisonChickenWritingFactory; + @Autowired + private CopyWritingFactory lqAWordCopyWritingFactory; @GetMapping @@ -105,6 +107,7 @@ public class CopyWritingController extends BaseController { factories.add(rollMMYJCopyWritingFactory); factories.add(lqDogDiaryCopyWritingFactory); factories.add(lqPoisonChickenWritingFactory); + factories.add(lqAWordCopyWritingFactory); //--------add----------------------------;- //随机调用集合中的接口 return RandomUtil.randomEle(factories); diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/factory/impl/LqAWordCopyWritingFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/factory/impl/LqAWordCopyWritingFactory.java new file mode 100644 index 00000000..0c1af1e8 --- /dev/null +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/factory/impl/LqAWordCopyWritingFactory.java @@ -0,0 +1,40 @@ +package com.xjs.copywriting.factory.impl; + +import com.xjs.common.client.api.lq.LqAWordFeignClient; +import com.xjs.consts.TianXingConst; +import com.xjs.copywriting.domain.CopyWriting; +import com.xjs.copywriting.domain.RequestBody; +import com.xjs.copywriting.factory.CopyWritingFactory; +import com.xjs.copywriting.service.CopyWritingService; +import com.xjs.exception.ApiException; +import lombok.extern.log4j.Log4j2; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * @author xiejs + * @since 2022-02-14 + */ +@Component +@Log4j2 +public class LqAWordCopyWritingFactory implements CopyWritingFactory { + @Autowired + private CopyWritingService copyWritingService; + @Autowired + private LqAWordFeignClient lqAWordFeignClient; + + @Override + public CopyWriting productCopyWriting(RequestBody requestBody) { + String data = lqAWordFeignClient.aWordApi(); + if (StringUtils.isEmpty(data)) { + throw new ApiException("零七-一言接口调用异常"); + } + CopyWriting copyWriting = new CopyWriting(); + copyWriting.setContent(data); + copyWriting.setSource("一言"); + copyWriting.setType(TianXingConst.YY); + copyWritingService.save(copyWriting); + return copyWriting; + } +}