From b47e51233ff1703a8305af6dd65745c8a252e7cf Mon Sep 17 00:00:00 2001 From: xjs <1294405880@qq.com> Date: Tue, 18 Jan 2022 15:57:24 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=AE=9E=E7=8E=B0roll=E9=A2=84?= =?UTF-8?q?=E6=8A=A5=E5=A4=A9=E6=B0=94=E6=9F=A5=E8=AF=A2=202=E3=80=81?= =?UTF-8?q?=E4=BC=98=E5=8C=96swaggers=E7=9A=84controller=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/common/core/domain/R.java | 11 ++--- .../main/java/com/xjs/consts/ApiConst.java | 4 +- .../controller/ApiToolsController.java | 7 ++++ .../apitools/domain/ApiForecastWeather.java | 36 ++++++++++++++++ .../xjs/apitools/domain/ApiNowWeather.java | 3 +- .../com/xjs/apitools/domain/Forecasts.java | 20 +++++++++ .../impl/RollForecastWeatherFactory.java | 42 +++++++++++++++++++ .../xjs/apitools/service/ApiToolsService.java | 10 +++++ .../service/impl/ApiToolsServiceImpl.java | 20 +++++++-- .../aword/controller/ApiAWordController.java | 4 ++ .../api/roll/RollWeatherFeignClient.java | 7 ++-- .../controller/TranDictController.java | 2 + .../java/com/xjs/weather/domain/Casts.java | 3 +- .../xjs/weather/domain/ForecastWeather.java | 3 +- 14 files changed, 155 insertions(+), 17 deletions(-) create mode 100644 xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/domain/ApiForecastWeather.java create mode 100644 xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/domain/Forecasts.java create mode 100644 xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/factory/impl/RollForecastWeatherFactory.java diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/domain/R.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/domain/R.java index 8f055531..66666b17 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/domain/R.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/domain/R.java @@ -1,8 +1,9 @@ package com.ruoyi.common.core.domain; -import java.io.Serializable; import com.ruoyi.common.core.constant.Constants; +import java.io.Serializable; + /** * 响应信息主体 * @@ -26,12 +27,12 @@ public class R implements Serializable public static R ok() { - return restResult(null, SUCCESS, null); + return restResult(null, SUCCESS, "操作成功"); } public static R ok(T data) { - return restResult(data, SUCCESS, null); + return restResult(data, SUCCESS, "操作成功"); } public static R ok(T data, String msg) @@ -41,7 +42,7 @@ public class R implements Serializable public static R fail() { - return restResult(null, FAIL, null); + return restResult(null, FAIL, "操作失败"); } public static R fail(String msg) @@ -51,7 +52,7 @@ public class R implements Serializable public static R fail(T data) { - return restResult(data, FAIL, null); + return restResult(data, FAIL, "操作失败"); } public static R fail(T data, String msg) 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 db743be5..450dd738 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 @@ -52,7 +52,9 @@ public class ApiConst { public static final String ROLL_MOBILE_BELONG = "ROLL-手机归属地"; - public static final String ROLL_WEATHER = "ROLL-天气预报"; + public static final String ROLL_NOW_WEATHER = "ROLL-实时天气"; + + public static final String ROLL_FORECAST_WEATHER = "ROLL-预报天气"; //-------------------url------------------------------ 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 359c6a7f..182eface 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,6 +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; @@ -63,6 +64,12 @@ public class ApiToolsController { return R.ok(apiToolsService.getNowWeather(city)); } + @GetMapping("forecastweather/{city}") + @ApiOperation("获取预报天气信息") + @Log(title = "获取预报天气") + public R getForecastWeatherApiData(@PathVariable("city") String city) { + return R.ok(apiToolsService.getForecastWeather(city)); + } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/domain/ApiForecastWeather.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/domain/ApiForecastWeather.java new file mode 100644 index 00000000..ac7d4d32 --- /dev/null +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/domain/ApiForecastWeather.java @@ -0,0 +1,36 @@ +package com.xjs.apitools.domain; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +import java.util.List; + +/** + * api预报天气实体 + * @author xiejs + * @since 2022-01-18 + */ +@Data +public class ApiForecastWeather { + + /** + * 城市具体信息,比如 “广东省 深圳市” + */ + private String address; + + /** + * 城市code + */ + private String cityCode; + + /** + * 此次天气发布时间 + */ + private String reportTime; + + /** + * 今天及未来天气列表 + */ + private List forecasts; + +} diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/domain/ApiNowWeather.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/domain/ApiNowWeather.java index 58223949..3cda1b62 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/domain/ApiNowWeather.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/domain/ApiNowWeather.java @@ -1,10 +1,11 @@ package com.xjs.apitools.domain; +import com.fasterxml.jackson.annotation.JsonInclude; import com.xjs.weather.domain.NowWeather; import lombok.Data; /** - * api天气实体 + * api实时天气实体 * * @author xiejs * @since 2022-01-18 diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/domain/Forecasts.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/domain/Forecasts.java new file mode 100644 index 00000000..2194037a --- /dev/null +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/domain/Forecasts.java @@ -0,0 +1,20 @@ +package com.xjs.apitools.domain; + +import com.fasterxml.jackson.annotation.JsonInclude; +import com.xjs.weather.domain.Casts; +import lombok.Data; + +/** + * roll预报天气实体 + * @author xiejs + * @since 2022-01-18 + */ +@Data +public class Forecasts extends Casts { + + /** + * 星期 + */ + private String dayOfWeek; + +} diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/factory/impl/RollForecastWeatherFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/factory/impl/RollForecastWeatherFactory.java new file mode 100644 index 00000000..aa579787 --- /dev/null +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/apitools/factory/impl/RollForecastWeatherFactory.java @@ -0,0 +1,42 @@ +package com.xjs.apitools.factory.impl; + +import com.alibaba.fastjson.JSONObject; +import com.xjs.apitools.domain.ApiForecastWeather; +import com.xjs.apitools.domain.RequestBody; +import com.xjs.apitools.factory.ApiToolsFactory; +import com.xjs.common.client.api.roll.RollWeatherFeignClient; +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-18 + */ +@Component +@Log4j2 +public class RollForecastWeatherFactory implements ApiToolsFactory { + + @Autowired + private RollProperties rollProperties; + @Autowired + private RollWeatherFeignClient rollWeatherFeignClient; + + + @Override + public ApiForecastWeather apiData(RequestBody requestBody) { + requestBody.setApp_id(rollProperties.getApp_id()); + requestBody.setApp_secret(rollProperties.getApp_secret()); + JSONObject jsonObject = rollWeatherFeignClient.forecastWeatherApi(requestBody, requestBody.getCity()); + if (!jsonObject.containsKey(DEMOTE_ERROR) && jsonObject.getInteger("code") == ROLL_CODE_SUCCESS.intValue()) { + JSONObject jsonData = jsonObject.getJSONObject("data"); + return jsonData.toJavaObject(ApiForecastWeather.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 4cbe2155..e6db8937 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,5 +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; @@ -35,4 +36,13 @@ public interface ApiToolsService { */ ApiNowWeather getNowWeather(String city); + /** + * 获取预报天气 + * @param city 目标城市 + * @return ApiForecastWeather + */ + ApiForecastWeather getForecastWeather(String city); + + + } 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 0ff1b078..ed1ff694 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 @@ -1,10 +1,8 @@ package com.xjs.apitools.service.impl; -import com.xjs.apitools.domain.ApiHoliday; -import com.xjs.apitools.domain.ApiMobileBelong; -import com.xjs.apitools.domain.ApiNowWeather; -import com.xjs.apitools.domain.RequestBody; +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; @@ -30,6 +28,7 @@ public class ApiToolsServiceImpl implements ApiToolsService { private ApiToolsFactory holidayFactory; private ApiToolsFactory mobileBelongFactory; private ApiToolsFactory nowWeatherFactory; + private ApiToolsFactory forecastWeatherFactory; @Autowired public void setHolidayFactory(RollHolidayFactory rollHolidayFactory) { @@ -46,6 +45,11 @@ public class ApiToolsServiceImpl implements ApiToolsService { this.nowWeatherFactory = rollNowWeatherFactory; } + @Autowired + public void setForecastWeatherFactory(RollForecastWeatherFactory rollForecastWeatherFactory) { + this.forecastWeatherFactory = rollForecastWeatherFactory; + } + @Override public List getApiHolidayList() { @@ -77,4 +81,12 @@ public class ApiToolsServiceImpl implements ApiToolsService { return Optional.ofNullable(nowWeatherFactory.apiData(requestBody)) .orElseThrow(ApiException::new); } + + @Override + public ApiForecastWeather getForecastWeather(String city) { + RequestBody requestBody = new RequestBody(); + requestBody.setCity(city); + return Optional.ofNullable(forecastWeatherFactory.apiData(requestBody)) + .orElseThrow(ApiException::new); + } } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/aword/controller/ApiAWordController.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/aword/controller/ApiAWordController.java index 11e6606b..f90ba64e 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/aword/controller/ApiAWordController.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/aword/controller/ApiAWordController.java @@ -53,6 +53,7 @@ public class ApiAWordController extends BaseController { /** * 查询每日一句列表 */ + @ApiOperation("查询每日一句列表") @RequiresPermissions("openapi:aword:list") @GetMapping("/list") public TableDataInfo list(ApiAWord apiAWord) { @@ -67,6 +68,7 @@ public class ApiAWordController extends BaseController { @RequiresPermissions("openapi:aword:export") @Log(title = "每日一句", businessType = BusinessType.EXPORT) @PostMapping("/export") + @ApiOperation("导出每日一句列表") public void export(HttpServletResponse response, ApiAWord apiAWord) { List list = apiAWordService.selectApiAWordList(apiAWord); ExcelUtil util = new ExcelUtil(ApiAWord.class); @@ -78,6 +80,7 @@ public class ApiAWordController extends BaseController { */ @RequiresPermissions("openapi:aword:query") @GetMapping(value = "/{id}") + @ApiOperation("获取每日一句详细信息") public AjaxResult getInfo(@PathVariable("id") Long id) { return AjaxResult.success(apiAWordService.selectApiAWordById(id)); } @@ -88,6 +91,7 @@ public class ApiAWordController extends BaseController { @RequiresPermissions("openapi:aword:remove") @Log(title = "每日一句", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") + @ApiOperation("删除每日一句") public AjaxResult remove(@PathVariable Long[] ids) { return toAjax(apiAWordService.deleteApiAWordByIds(ids)); } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/api/roll/RollWeatherFeignClient.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/api/roll/RollWeatherFeignClient.java index a9ed584a..131149e9 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/api/roll/RollWeatherFeignClient.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/api/roll/RollWeatherFeignClient.java @@ -9,8 +9,7 @@ import org.springframework.cloud.openfeign.SpringQueryMap; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; -import static com.xjs.consts.ApiConst.ROLL_WEATHER; -import static com.xjs.consts.ApiConst.ROLL_WEATHER_URL; +import static com.xjs.consts.ApiConst.*; /** * roll 天气预报api调用feign @@ -21,14 +20,14 @@ import static com.xjs.consts.ApiConst.ROLL_WEATHER_URL; public interface RollWeatherFeignClient { @GetMapping("/current/{city}") - @ApiLog(name = ROLL_WEATHER, + @ApiLog(name = ROLL_NOW_WEATHER, url = ROLL_WEATHER_URL+"/current", method = "Get") JSONObject nowWeatherApi(@SpringQueryMap RequestBody requestBody, @PathVariable("city")String city); @GetMapping("/forecast/{city}") - @ApiLog(name = ROLL_WEATHER, + @ApiLog(name = ROLL_FORECAST_WEATHER, url = ROLL_WEATHER_URL+"/forecast", method = "Get") JSONObject forecastWeatherApi(@SpringQueryMap RequestBody requestBody,@PathVariable("city")String city); diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/translation/controller/TranDictController.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/translation/controller/TranDictController.java index 47f2867a..01ea6190 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/translation/controller/TranDictController.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/translation/controller/TranDictController.java @@ -5,6 +5,7 @@ import com.xjs.translation.domain.qo.translation.TranslationQo; import com.xjs.translation.domain.vo.translation.TranslationVo; import com.xjs.translation.factory.TranslationFactory; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; import lombok.extern.log4j.Log4j2; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -26,6 +27,7 @@ public class TranDictController { private TranslationFactory tianXingTranDictFactory; @GetMapping("tranDictForRPC") + @ApiOperation("获取翻译字典RPC") public R tranDict(String content) { TranslationQo translationQo = new TranslationQo(); translationQo.setQ(content); diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/domain/Casts.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/domain/Casts.java index 0826a288..8fe92e00 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/domain/Casts.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/domain/Casts.java @@ -1,9 +1,10 @@ package com.xjs.weather.domain; +import com.fasterxml.jackson.annotation.JsonInclude; import lombok.Data; /** - * 预报天气某天数据 + * 高德预报天气某天数据 * @author xiejs * @since 2022-01-16 */ diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/domain/ForecastWeather.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/domain/ForecastWeather.java index 324e08c5..66e41529 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/domain/ForecastWeather.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/domain/ForecastWeather.java @@ -1,12 +1,13 @@ package com.xjs.weather.domain; +import com.fasterxml.jackson.annotation.JsonInclude; import lombok.Data; import java.io.Serializable; import java.util.List; /** - * 预报天气实体 + * 高德预报天气实体 * * @author xiejs * @since 2022-01-16