From 7a5f4afb0c5304895ff177c86e5e98e59dab3bf0 Mon Sep 17 00:00:00 2001 From: xjs <1294405880@qq.com> Date: Wed, 19 Jan 2022 11:29:26 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E9=A1=B5=E9=9D=A2=E5=8F=B3=E4=B8=8A?= =?UTF-8?q?=E8=A7=92=E7=A9=BA=E5=80=BC=E6=97=B6=E6=8F=90=E7=A4=BA=202?= =?UTF-8?q?=E3=80=81apiaop=E9=A2=84=E8=AD=A6=E6=97=B6=E5=88=9D=E5=A7=8B?= =?UTF-8?q?=E5=8C=96=E9=99=90=E5=AE=9A=E5=80=BC=203=E3=80=81roll=E5=B9=B3?= =?UTF-8?q?=E5=8F=B0=E5=9E=83=E5=9C=BE=E5=88=86=E7=B1=BBapi=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E8=B0=83=E7=94=A8=E5=AE=9E=E7=8E=B0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/src/layout/components/Navbar.vue | 2 + .../business/openapi/translation/index.vue | 4 +- .../main/java/com/xjs/consts/ApiConst.java | 7 ++++ .../controller/ApiToolsController.java | 13 ++++-- .../apitools/domain/ApiGarbageSorting.java | 33 +++++++++++++++ .../com/xjs/apitools/domain/RequestBody.java | 5 +++ .../impl/RollGarbageSortingFactory.java | 42 +++++++++++++++++++ .../xjs/apitools/service/ApiToolsService.java | 13 ++++-- .../service/impl/ApiToolsServiceImpl.java | 19 +++++++-- .../java/com/xjs/common/aop/ApiLogAspect.java | 1 + .../roll/RollGarbageSortingDeignClient.java | 29 +++++++++++++ .../RollGarbageSortingFeignFactory.java | 29 +++++++++++++ 12 files changed, 183 insertions(+), 14 deletions(-) create mode 100644 xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/domain/ApiGarbageSorting.java create mode 100644 xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/factory/impl/RollGarbageSortingFactory.java create mode 100644 xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/api/roll/RollGarbageSortingDeignClient.java create mode 100644 xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/RollGarbageSortingFeignFactory.java diff --git a/ruoyi-ui/src/layout/components/Navbar.vue b/ruoyi-ui/src/layout/components/Navbar.vue index 46962787..ef0e2d98 100644 --- a/ruoyi-ui/src/layout/components/Navbar.vue +++ b/ruoyi-ui/src/layout/components/Navbar.vue @@ -237,6 +237,8 @@ export default { if (json.warningMessage !== undefined) { // this.visible = true return json.warningMessage + }else { + return '暂无提示!!!' } } }, diff --git a/ruoyi-ui/src/views/business/openapi/translation/index.vue b/ruoyi-ui/src/views/business/openapi/translation/index.vue index 0bb9f203..cb675551 100644 --- a/ruoyi-ui/src/views/business/openapi/translation/index.vue +++ b/ruoyi-ui/src/views/business/openapi/translation/index.vue @@ -178,8 +178,8 @@ export default { watch: { 'dict.type.translation_type'(newVal) { - if (newVal[0]) { - this.translationData.translationType= newVal[0].value + if (newVal[2]) { + this.translationData.translationType= newVal[2].value } } }, 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 450dd738..96359985 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 @@ -56,6 +56,8 @@ public class ApiConst { public static final String ROLL_FORECAST_WEATHER = "ROLL-预报天气"; + public static final String ROLL_GARBAGE_SORTING = "ROLL-垃圾分类"; + //-------------------url------------------------------ @@ -115,6 +117,11 @@ public class ApiConst { */ public static final String ROLL_WEATHER_URL = "https://www.mxnzp.com/api/weather"; + /** + * 接口文档:https://www.mxnzp.com/doc/detail?id=14 + */ + public static final String ROLL_GARBAGE_SORTING_URL = "https://www.mxnzp.com/api/rubbish/type"; + 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 182eface..a93f076e 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 @@ -3,10 +3,7 @@ package com.xjs.apitools.controller; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.security.annotation.RequiresPermissions; -import com.xjs.apitools.domain.ApiForecastWeather; -import com.xjs.apitools.domain.ApiHoliday; -import com.xjs.apitools.domain.ApiMobileBelong; -import com.xjs.apitools.domain.ApiNowWeather; +import com.xjs.apitools.domain.*; import com.xjs.apitools.service.ApiToolsService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -72,6 +69,14 @@ public class ApiToolsController { } + @GetMapping("garbagesorting/{name}") + @ApiOperation("获取垃圾分类信息") + @Log(title = "获取垃圾分类") + public R getGarbageSortingApiData(@PathVariable("name") String name) { + return R.ok(apiToolsService.getGarbageSorting(name)); + } + + } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/domain/ApiGarbageSorting.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/domain/ApiGarbageSorting.java new file mode 100644 index 00000000..0e9148dc --- /dev/null +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/domain/ApiGarbageSorting.java @@ -0,0 +1,33 @@ +package com.xjs.apitools.domain; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Map; + +/** + * api垃圾分类实体 + * + * @author xiejs + * @since 2022-01-19 + */ +@Data +public class ApiGarbageSorting implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 查询出来的匹配结果 + */ + private Map aim; + + + /** + * 物品垃圾分类类型 + */ + private Map recommendList; + + + + +} 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 a42a2e3e..0d316d4b 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 @@ -30,4 +30,9 @@ public class RequestBody { * 目标城市 */ private String city; + + /** + * 物品名称 + */ + private String name; } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/factory/impl/RollGarbageSortingFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/factory/impl/RollGarbageSortingFactory.java new file mode 100644 index 00000000..3ed312b6 --- /dev/null +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/factory/impl/RollGarbageSortingFactory.java @@ -0,0 +1,42 @@ +package com.xjs.apitools.factory.impl; + +import com.alibaba.fastjson.JSONObject; +import com.xjs.apitools.domain.ApiGarbageSorting; +import com.xjs.apitools.domain.RequestBody; +import com.xjs.apitools.factory.ApiToolsFactory; +import com.xjs.common.client.api.roll.RollGarbageSortingDeignClient; +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; + +/** + * roll平台获取垃圾分类api工厂实现 + * @author xiejs + * @since 2022-01-19 + */ +@Component +@Log4j2 +public class RollGarbageSortingFactory implements ApiToolsFactory { + + @Autowired + private RollProperties rollProperties; + @Autowired + private RollGarbageSortingDeignClient rollGarbageSortingDeignClient; + + + @Override + public ApiGarbageSorting apiData(RequestBody req) { + req.setApp_secret(rollProperties.getApp_secret()); + req.setApp_id(rollProperties.getApp_id()); + JSONObject jsonObject = rollGarbageSortingDeignClient.garbageSortingApi(req); + if (!jsonObject.containsKey(DEMOTE_ERROR) && jsonObject.getInteger("code") == ROLL_CODE_SUCCESS.intValue()) { + JSONObject jsonData = jsonObject.getJSONObject("data"); + return jsonData.toJavaObject(ApiGarbageSorting.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 e6db8937..d6068485 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 @@ -1,9 +1,6 @@ package com.xjs.apitools.service; -import com.xjs.apitools.domain.ApiForecastWeather; -import com.xjs.apitools.domain.ApiHoliday; -import com.xjs.apitools.domain.ApiMobileBelong; -import com.xjs.apitools.domain.ApiNowWeather; +import com.xjs.apitools.domain.*; import java.util.List; @@ -44,5 +41,13 @@ public interface ApiToolsService { ApiForecastWeather getForecastWeather(String city); + /** + * 获取垃圾分类 + * @param name 垃圾名称 + * @return ApiGarbageSorting + */ + ApiGarbageSorting getGarbageSorting(String name); + + } 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 ed1ff694..5749bcf9 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 @@ -2,10 +2,7 @@ package com.xjs.apitools.service.impl; import com.xjs.apitools.domain.*; import com.xjs.apitools.factory.ApiToolsFactory; -import com.xjs.apitools.factory.impl.RollForecastWeatherFactory; -import com.xjs.apitools.factory.impl.RollHolidayFactory; -import com.xjs.apitools.factory.impl.RollMobileBelongFactory; -import com.xjs.apitools.factory.impl.RollNowWeatherFactory; +import com.xjs.apitools.factory.impl.*; import com.xjs.apitools.service.ApiToolsService; import com.xjs.exception.ApiException; import org.springframework.beans.factory.annotation.Autowired; @@ -29,6 +26,7 @@ public class ApiToolsServiceImpl implements ApiToolsService { private ApiToolsFactory mobileBelongFactory; private ApiToolsFactory nowWeatherFactory; private ApiToolsFactory forecastWeatherFactory; + private ApiToolsFactory garbageSortingFactory; @Autowired public void setHolidayFactory(RollHolidayFactory rollHolidayFactory) { @@ -50,6 +48,11 @@ public class ApiToolsServiceImpl implements ApiToolsService { this.forecastWeatherFactory = rollForecastWeatherFactory; } + @Autowired + public void setGarbageSortingFactory(RollGarbageSortingFactory rollGarbageSortingFactory) { + this.garbageSortingFactory = rollGarbageSortingFactory; + } + @Override public List getApiHolidayList() { @@ -89,4 +92,12 @@ public class ApiToolsServiceImpl implements ApiToolsService { return Optional.ofNullable(forecastWeatherFactory.apiData(requestBody)) .orElseThrow(ApiException::new); } + + @Override + public ApiGarbageSorting getGarbageSorting(String name) { + RequestBody requestBody = new RequestBody(); + requestBody.setName(name); + return Optional.ofNullable(garbageSortingFactory.apiData(requestBody)) + .orElseThrow(ApiException::new); + } } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/aop/ApiLogAspect.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/aop/ApiLogAspect.java index e8f8d7ed..b17c8a6c 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/aop/ApiLogAspect.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/aop/ApiLogAspect.java @@ -167,6 +167,7 @@ public class ApiLogAspect { //设置初始请求次数 apiRecord.setTotalCount(1L); apiRecord.setDayCount(1L); + apiRecord.setLimitCount(30L); remoteWarningCRUDFeign.saveApiRecordForRPC(apiRecord); } else { ApiRecord haveApiRecord = data.get(0); diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/api/roll/RollGarbageSortingDeignClient.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/api/roll/RollGarbageSortingDeignClient.java new file mode 100644 index 00000000..d55d32a3 --- /dev/null +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/api/roll/RollGarbageSortingDeignClient.java @@ -0,0 +1,29 @@ +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.RollGarbageSortingFeignFactory; +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_GARBAGE_SORTING; +import static com.xjs.consts.ApiConst.ROLL_GARBAGE_SORTING_URL; + + +/** + * roll 垃圾分类api接口feign远程调用 + * @author xiejs + * @since 2022-01-19 + */ +@FeignClient(name = "rollGarbageSorting", url = ROLL_GARBAGE_SORTING_URL, fallbackFactory = RollGarbageSortingFeignFactory.class) +public interface RollGarbageSortingDeignClient { + + @GetMapping() + @ApiLog(name = ROLL_GARBAGE_SORTING, + url = ROLL_GARBAGE_SORTING_URL, + method = "Get") + JSONObject garbageSortingApi(@SpringQueryMap RequestBody requestBody); + +} diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/RollGarbageSortingFeignFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/RollGarbageSortingFeignFactory.java new file mode 100644 index 00000000..8418fb82 --- /dev/null +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/RollGarbageSortingFeignFactory.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.roll.RollGarbageSortingDeignClient; +import lombok.extern.log4j.Log4j2; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +import static com.xjs.consts.ApiConst.DEMOTE_ERROR; + +/** + * roll 垃圾分类api接口feign降级 + * @author xiejs + * @since 2022-01-19 + */ +@Component +@Log4j2 +public class RollGarbageSortingFeignFactory implements FallbackFactory { + @Override + public RollGarbageSortingDeignClient create(Throwable cause) { + log.error("api模块roll 垃圾分类服务调用失败:{},执行降级处理", cause.getMessage()); + return requestBody -> { + JSONObject jsonObject = new JSONObject(); + jsonObject.put(DEMOTE_ERROR, R.FAIL); + return jsonObject; + }; + } +}