From adbd6075af5e81e2b49904c41d5c76035497d50c Mon Sep 17 00:00:00 2001 From: xjs <1294405880@qq.com> Date: Thu, 20 Jan 2022 14:10:06 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81roll=E5=B9=B3=E5=8F=B0=E7=AE=80?= =?UTF-8?q?=E7=B9=81=E8=BD=AC=E6=8D=A2api=E5=AE=9E=E7=8E=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/xjs/consts/ApiConst.java | 9 ++++ .../src/main/java/com/xjs/XjsOpenApiApp.java | 4 +- .../controller/ApiToolsController.java | 16 +++++-- .../xjs/apitools/domain/ApiSimpleComplex.java | 27 ++++++++++++ .../com/xjs/apitools/domain/RequestBody.java | 11 ++++- .../impl/RollSimpleComplexFactory.java | 42 +++++++++++++++++++ .../xjs/apitools/service/ApiToolsService.java | 8 ++++ .../service/impl/ApiToolsServiceImpl.java | 12 ++++++ .../roll/RollSimpleComplexFeignClient.java | 28 +++++++++++++ .../RollSimpleComplexFeignFactory.java | 28 +++++++++++++ 10 files changed, 179 insertions(+), 6 deletions(-) create mode 100644 xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/domain/ApiSimpleComplex.java create mode 100644 xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/factory/impl/RollSimpleComplexFactory.java create mode 100644 xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/api/roll/RollSimpleComplexFeignClient.java create mode 100644 xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/RollSimpleComplexFeignFactory.java 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 998d1c0f..98c6460e 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 @@ -62,6 +62,8 @@ public class ApiConst { public static final String ROLL_HISTORY_TODAY = "ROLL-历史今天"; + public static final String ROLL_SIMPLE_COMPLEX = "ROLL-简繁转换"; + //-------------------url------------------------------ @@ -136,6 +138,13 @@ public class ApiConst { */ public static final String ROLL_HISTORY_TODAY_URL = "https://www.mxnzp.com/api/history/today"; + /** + * 接口文档:https://www.mxnzp.com/doc/detail?id=20 + */ + public static final String ROLL_SIMPLE_COMPLEX_URL = "https://www.mxnzp.com/api/convert/zh"; + + + diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/XjsOpenApiApp.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/XjsOpenApiApp.java index 52406d62..8208e5e1 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/XjsOpenApiApp.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/XjsOpenApiApp.java @@ -8,9 +8,9 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.scheduling.annotation.EnableScheduling; /** + * openApi启动器 * @author xiejs - * @desc - * @create 2021-12-25 + * @since 2021-12-25 */ @SpringBootApplication @EnableCustomConfig diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/controller/ApiToolsController.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/controller/ApiToolsController.java index 450d11e0..ab34bebb 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/controller/ApiToolsController.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/controller/ApiToolsController.java @@ -5,6 +5,7 @@ import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.security.annotation.RequiresPermissions; import com.xjs.apitools.domain.*; import com.xjs.apitools.service.ApiToolsService; +import com.xjs.utils.ChineseUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.log4j.Log4j2; @@ -85,14 +86,23 @@ public class ApiToolsController { @GetMapping("historytoday") @ApiOperation("获取历史今天信息") - @Log(title = "获取历史今天分类") + @Log(title = "获取历史今天") public R> getHistoryTodayApiData() { return R.ok(apiToolsService.getHistoryTodayList()); } + @GetMapping("simplecomplex/{content}") + @ApiOperation("获取简繁转换信息") + @Log(title = "获取简繁转换") + public R getSimpleComplexApiData(@PathVariable("content") String content) { + boolean b = ChineseUtils.checkNameChese(content); + if (b) { + return R.ok(apiToolsService.getSimpleComplex(content)); - - + }else { + return R.fail("请输入中文!!!"); + } + } } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/domain/ApiSimpleComplex.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/domain/ApiSimpleComplex.java new file mode 100644 index 00000000..897a4def --- /dev/null +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/domain/ApiSimpleComplex.java @@ -0,0 +1,27 @@ +package com.xjs.apitools.domain; + +import lombok.Data; + +import java.io.Serializable; + +/** + * api简繁转换实体 + * @author xiejs + * @since 2022-01-20 + */ +@Data +public class ApiSimpleComplex implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 原内容 + */ + private String originContent; + + /** + * 转化后的内容 + */ + private String convertContent; + +} diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/domain/RequestBody.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/domain/RequestBody.java index b4ffda06..0a2c5137 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/domain/RequestBody.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/domain/RequestBody.java @@ -37,7 +37,16 @@ public class RequestBody { private String name; /** - * 是否需要详情,0:不需要详情 1:需要详情 默认值 0 可不传 + * 是否需要详情,0:不需要详情 1:需要详情 默认值 0 可不传
+ * 1 简体转繁体 2 繁体转简体 */ private Integer type; + + + /** + * 待转换的内容 + */ + private String content; + + } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/factory/impl/RollSimpleComplexFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/factory/impl/RollSimpleComplexFactory.java new file mode 100644 index 00000000..c6588e1d --- /dev/null +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/factory/impl/RollSimpleComplexFactory.java @@ -0,0 +1,42 @@ +package com.xjs.apitools.factory.impl; + +import com.alibaba.fastjson.JSONObject; +import com.xjs.apitools.domain.ApiSimpleComplex; +import com.xjs.apitools.domain.RequestBody; +import com.xjs.apitools.factory.ApiToolsFactory; +import com.xjs.common.client.api.roll.RollSimpleComplexFeignClient; +import com.xjs.config.RollProperties; +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; +import static com.xjs.consts.ApiConst.ROLL_CODE_SUCCESS; + +/** + * @author xiejs + * @since 2022-01-20 + */ +@Component +@Log4j2 +public class RollSimpleComplexFactory implements ApiToolsFactory { + + @Autowired + private RollProperties rollProperties; + @Autowired + private RollSimpleComplexFeignClient rollSimpleComplexFeignClient; + + @Override + public ApiSimpleComplex apiData(RequestBody req) { + req.setApp_secret(rollProperties.getApp_secret()); + req.setApp_id(rollProperties.getApp_id()); + //type 1 简体转繁体 2 繁体转简体 + req.setType(1); + JSONObject jsonObject = rollSimpleComplexFeignClient.simpleComplexApi(req); + if (!jsonObject.containsKey(DEMOTE_ERROR) && jsonObject.getInteger("code") == ROLL_CODE_SUCCESS.intValue()) { + JSONObject jsonData = jsonObject.getJSONObject("data"); + return jsonData.toJavaObject(ApiSimpleComplex.class); + } + return null; + } +} diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/service/ApiToolsService.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/service/ApiToolsService.java index f17203d3..35e5eaaa 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/service/ApiToolsService.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/service/ApiToolsService.java @@ -63,5 +63,13 @@ public interface ApiToolsService { List getHistoryTodayList(); + /** + * 获取简繁转换数据 + * @param content 传入的简体 + * @return ApiSimpleComplex + */ + ApiSimpleComplex getSimpleComplex(String content); + + } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/service/impl/ApiToolsServiceImpl.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/service/impl/ApiToolsServiceImpl.java index 2199e36a..fb0d0e47 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/service/impl/ApiToolsServiceImpl.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/service/impl/ApiToolsServiceImpl.java @@ -8,6 +8,7 @@ import com.xjs.apitools.factory.impl.*; import com.xjs.apitools.service.ApiToolsService; import com.xjs.exception.ApiException; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Service; import java.math.BigDecimal; @@ -39,6 +40,10 @@ public class ApiToolsServiceImpl implements ApiToolsService { private ApiToolsFactory beautyPictureFactory; private ApiToolsFactory historyTodayFactory; + @Autowired + @Qualifier("rollSimpleComplexFactory") + private ApiToolsFactory simpleComplexFactory; + @Autowired public void setHolidayFactory(RollHolidayFactory rollHolidayFactory) { this.holidayFactory = rollHolidayFactory; @@ -146,4 +151,11 @@ public class ApiToolsServiceImpl implements ApiToolsService { throw new ApiException("获取历史上的今天api调用异常!!!"); } } + + @Override + public ApiSimpleComplex getSimpleComplex(String content) { + RequestBody requestBody = new RequestBody(); + requestBody.setContent(content); + return simpleComplexFactory.apiData(requestBody); + } } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/api/roll/RollSimpleComplexFeignClient.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/api/roll/RollSimpleComplexFeignClient.java new file mode 100644 index 00000000..be63f37e --- /dev/null +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/api/roll/RollSimpleComplexFeignClient.java @@ -0,0 +1,28 @@ +package com.xjs.common.client.api.roll; + +import com.alibaba.fastjson.JSONObject; +import com.xjs.annotation.ApiLog; +import com.xjs.apitools.domain.RequestBody; +import com.xjs.common.client.factory.RollMobileBelongFeignFactory; +import com.xjs.common.client.factory.RollSimpleComplexFeignFactory; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.cloud.openfeign.SpringQueryMap; +import org.springframework.web.bind.annotation.GetMapping; + +import static com.xjs.consts.ApiConst.*; + + +/** + * roll简繁转换接口api调用 + * @author xiejs + * @since 2022-01-20 + */ +@FeignClient(name = "rollSimpleComplex", url = ROLL_SIMPLE_COMPLEX_URL, fallbackFactory = RollSimpleComplexFeignFactory.class) +public interface RollSimpleComplexFeignClient { + + @GetMapping() + @ApiLog(name = ROLL_SIMPLE_COMPLEX, + url = ROLL_SIMPLE_COMPLEX_URL, + method = "Get") + JSONObject simpleComplexApi(@SpringQueryMap RequestBody requestBody); +} diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/RollSimpleComplexFeignFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/RollSimpleComplexFeignFactory.java new file mode 100644 index 00000000..73a7833c --- /dev/null +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/RollSimpleComplexFeignFactory.java @@ -0,0 +1,28 @@ +package com.xjs.common.client.factory; + +import com.alibaba.fastjson.JSONObject; +import com.ruoyi.common.core.domain.R; +import com.xjs.common.client.api.roll.RollSimpleComplexFeignClient; +import lombok.extern.log4j.Log4j2; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +import static com.xjs.consts.ApiConst.DEMOTE_ERROR; + +/** + * @author xiejs + * @since 2022-01-20 + */ +@Component +@Log4j2 +public class RollSimpleComplexFeignFactory implements FallbackFactory { + @Override + public RollSimpleComplexFeignClient create(Throwable cause) { + log.error("api模块roll 简繁转换服务调用失败:{},执行降级处理", cause.getMessage()); + return requestBody -> { + JSONObject jsonObject = new JSONObject(); + jsonObject.put(DEMOTE_ERROR, R.FAIL); + return jsonObject; + }; + } +}