diff --git a/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/CopyWritingTask.java b/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/CopyWritingTask.java index 9f3c83af..1165b3e7 100644 --- a/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/CopyWritingTask.java +++ b/ruoyi-modules/ruoyi-job/src/main/java/com/xjs/job/task/CopyWritingTask.java @@ -29,13 +29,15 @@ public class CopyWritingTask { * 任务执行 */ public void execute() { - LocalDateTime localDateTime1 = DateUtil.date().toLocalDateTime(); log.info("---------------文案定时任务Start-------------------"); - R r = remoteCopyWritingFeign.copyWriting(); - log.info("文案定时任务结果:code={},msg={},data={}",r.getCode(),r.getMsg(),r.getData()); - LocalDateTime localDateTime2 = DateUtil.date().toLocalDateTime(); - long between = ChronoUnit.MILLIS.between(localDateTime1, localDateTime2); - log.info("文案定时任务Job耗费时间:{}ms", between); + for (int i = 0; i < 3; i++) { + LocalDateTime localDateTime1 = DateUtil.date().toLocalDateTime(); + R r = remoteCopyWritingFeign.copyWriting(); + log.info("文案定时任务[{}]结果:code={},msg={},data={}",i,r.getCode(),r.getMsg(),r.getData()); + LocalDateTime localDateTime2 = DateUtil.date().toLocalDateTime(); + long between = ChronoUnit.MILLIS.between(localDateTime1, localDateTime2); + log.info("文案[{}]定时任务Job耗费时间:{}ms", i,between); + } log.info("---------------文案定时任务end---------------------"); } } diff --git a/ruoyi-ui/src/views/business/openapi/translation/index.vue b/ruoyi-ui/src/views/business/openapi/translation/index.vue index cb675551..c0bc430e 100644 --- a/ruoyi-ui/src/views/business/openapi/translation/index.vue +++ b/ruoyi-ui/src/views/business/openapi/translation/index.vue @@ -290,6 +290,11 @@ export default { float: left; width: 75%; text-shadow: 2px 2px 2px grey; + /*显示6行*/ + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 6; + overflow: hidden; } .source_div { 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 faf3c1ef..7586ffe4 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 @@ -76,6 +76,8 @@ public class ApiConst { public static final String UOMG_EARTH_LOVE = "Uomg-土味情话"; + public static final String ALAPI_JOKE_ALL = "ALAPI-笑话大全"; + //-------------------url------------------------------ @@ -185,6 +187,11 @@ public class ApiConst { */ public static final String UOMG_EARTH_LOVE_URL = "https://api.uomg.com/api/rand.qinghua"; + /** + * 接口文档:https://www.alapi.cn/api/view/11 + */ + public static final String ALAPI_JOKE_ALL_URL = "http://v2.alapi.cn/api/joke/random"; + //-----------------------api请求参数常量----------------------------- diff --git a/xjs-business/xjs-business-common/src/main/java/com/xjs/consts/CopyWritingConst.java b/xjs-business/xjs-business-common/src/main/java/com/xjs/consts/CopyWritingConst.java index cf17d4b4..a6afd100 100644 --- a/xjs-business/xjs-business-common/src/main/java/com/xjs/consts/CopyWritingConst.java +++ b/xjs-business/xjs-business-common/src/main/java/com/xjs/consts/CopyWritingConst.java @@ -38,4 +38,9 @@ public class CopyWritingConst { //土味情话 public static final Integer TWQH= 9; + + //------------------alapi平台参数-------------------------- + + //笑话大去哪 + public static final Integer XHDQ= 10; } diff --git a/xjs-business/xjs-business-common/src/main/java/com/xjs/properties/AlApiProperties.java b/xjs-business/xjs-business-common/src/main/java/com/xjs/properties/AlApiProperties.java new file mode 100644 index 00000000..78e35354 --- /dev/null +++ b/xjs-business/xjs-business-common/src/main/java/com/xjs/properties/AlApiProperties.java @@ -0,0 +1,19 @@ +package com.xjs.properties; + +import lombok.Data; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +/** + * ALAPI平台token参数 + * @author xiejs + * @since 2022-02-15 + */ +@Data +@ConfigurationProperties(prefix = "alapi.open") +@Component +public class AlApiProperties { + + private String token; + +} diff --git a/xjs-business/xjs-business-common/src/main/java/com/xjs/properties/BaiduProperties.java b/xjs-business/xjs-business-common/src/main/java/com/xjs/properties/BaiduProperties.java index 594c9c3c..2bfea053 100644 --- a/xjs-business/xjs-business-common/src/main/java/com/xjs/properties/BaiduProperties.java +++ b/xjs-business/xjs-business-common/src/main/java/com/xjs/properties/BaiduProperties.java @@ -5,9 +5,9 @@ import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; /** + * 百度平台密钥 * @author xiejs - * @desc - * @create 2021-12-25 + * @since 2021-12-25 */ @Data @ConfigurationProperties(prefix = "baidu.open") diff --git a/xjs-business/xjs-business-common/src/main/java/com/xjs/properties/TianXingProperties.java b/xjs-business/xjs-business-common/src/main/java/com/xjs/properties/TianXingProperties.java index f9e95f3e..59ab96d9 100644 --- a/xjs-business/xjs-business-common/src/main/java/com/xjs/properties/TianXingProperties.java +++ b/xjs-business/xjs-business-common/src/main/java/com/xjs/properties/TianXingProperties.java @@ -5,9 +5,9 @@ import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; /** + * 天行数据配置 * @author xiejs - * @desc 天行数据配置 - * @create 2021-12-27 + * @since 2021-12-27 */ @Component @ConfigurationProperties(prefix = "tianxing.open") diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/api/alapi/AlapiJokeAllFeignClient.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/api/alapi/AlapiJokeAllFeignClient.java new file mode 100644 index 00000000..35ecc819 --- /dev/null +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/api/alapi/AlapiJokeAllFeignClient.java @@ -0,0 +1,25 @@ +package com.xjs.common.client.api.alapi; + +import com.alibaba.fastjson.JSONObject; +import com.xjs.annotation.ApiLog; +import com.xjs.common.client.factory.AlapiJokeAllFeignFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import static com.xjs.consts.ApiConst.ALAPI_JOKE_ALL; +import static com.xjs.consts.ApiConst.ALAPI_JOKE_ALL_URL; + +/** + * alapi平台笑话大全feign + * @author xiejs + * @since 2022-02-15 + */ +@FeignClient(name = "alapiJokeAll", url = ALAPI_JOKE_ALL_URL, fallbackFactory = AlapiJokeAllFeignFactory.class) +public interface AlapiJokeAllFeignClient { + @GetMapping( headers ={ "Accept-Encoding=''"})//解决响应乱码 + @ApiLog(name = ALAPI_JOKE_ALL, + url = ALAPI_JOKE_ALL_URL, + method = "Get") + JSONObject alapiJokeAllApi(@RequestParam("token") String token); +} diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/AlapiJokeAllFeignFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/AlapiJokeAllFeignFactory.java new file mode 100644 index 00000000..43864960 --- /dev/null +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/AlapiJokeAllFeignFactory.java @@ -0,0 +1,29 @@ +package com.xjs.common.client.factory; + +import com.alibaba.fastjson.JSONObject; +import com.ruoyi.common.core.domain.R; +import com.xjs.common.client.api.alapi.AlapiJokeAllFeignClient; +import lombok.extern.log4j.Log4j2; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +import static com.xjs.consts.ApiConst.DEMOTE_ERROR; + +/** + * alapi平台笑话大全降级处理 + * @author xiejs + * @since 2022-02-15 + */ +@Component +@Log4j2 +public class AlapiJokeAllFeignFactory implements FallbackFactory { + @Override + public AlapiJokeAllFeignClient create(Throwable cause) { + log.error("api模块alapi平台笑话大全服务调用失败:{},执行降级处理", cause.getMessage()); + return (token -> { + JSONObject jsonObject = new JSONObject(); + jsonObject.put(DEMOTE_ERROR, R.FAIL); + return jsonObject; + }); + } +} 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 d743122f..c32d9f0a 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 @@ -57,6 +57,8 @@ public class CopyWritingController extends BaseController { private CopyWritingFactory lqAWordCopyWritingFactory; @Autowired private CopyWritingFactory uomgEarthLoveCopyWritingFactory; + @Autowired + private CopyWritingFactory alapiJokeAllCopyWritingFactory; @GetMapping @@ -110,6 +112,7 @@ public class CopyWritingController extends BaseController { factories.add(lqDogDiaryCopyWritingFactory); factories.add(lqPoisonChickenWritingFactory); factories.add(lqAWordCopyWritingFactory); + factories.add(alapiJokeAllCopyWritingFactory); //factories.add(uomgEarthLoveCopyWritingFactory); //--------add----------------------------;- //随机调用集合中的接口 diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/factory/impl/AlapiJokeAllCopyWritingFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/factory/impl/AlapiJokeAllCopyWritingFactory.java new file mode 100644 index 00000000..ff0af343 --- /dev/null +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/factory/impl/AlapiJokeAllCopyWritingFactory.java @@ -0,0 +1,55 @@ +package com.xjs.copywriting.factory.impl; + +import com.alibaba.fastjson.JSONObject; +import com.ruoyi.common.core.constant.HttpStatus; +import com.xjs.common.client.api.alapi.AlapiJokeAllFeignClient; +import com.xjs.consts.CopyWritingConst; +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 com.xjs.properties.AlApiProperties; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import static com.xjs.consts.ApiConst.DEMOTE_ERROR; + +/** + * alapi平台笑话大全 工厂实现 + * + * @author xiejs + * @since 2022-02-15 + */ +@Log4j2 +@Component +public class AlapiJokeAllCopyWritingFactory implements CopyWritingFactory { + + @Autowired + private CopyWritingService copyWritingService; + @Autowired + private AlapiJokeAllFeignClient alapiJokeAllFeignClient; + @Autowired + private AlApiProperties alApiProperties; + + @Override + public CopyWriting productCopyWriting(RequestBody requestBody) { + JSONObject jsonObject = alapiJokeAllFeignClient.alapiJokeAllApi(alApiProperties.getToken()); + if (jsonObject.containsKey(DEMOTE_ERROR)) { + throw new ApiException("alapi平台笑话大全接口调用异常"); + } + if (jsonObject.getInteger("code") == HttpStatus.SUCCESS) { + JSONObject dataJson = jsonObject.getJSONObject("data"); + String content = dataJson.getString("content"); + CopyWriting copyWriting = new CopyWriting(); + copyWriting.setContent(content); + copyWriting.setSource("笑话大全"); + copyWriting.setType(CopyWritingConst.XHDQ); + copyWritingService.save(copyWriting); + return copyWriting; + } else { + throw new ApiException("alapi平台笑话大全接口调用异常"); + } + } +}