From dffb2aa293f60771b040a1004ef5096dc22b1a94 Mon Sep 17 00:00:00 2001 From: xjs <1294405880@qq.com> Date: Sun, 16 Jan 2022 20:42:59 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E9=AB=98=E5=BE=B7=E5=A4=A9=E6=B0=94?= =?UTF-8?q?=E9=A2=84=E6=8A=A5api=E8=B0=83=E7=94=A8=20feign=20=20=E9=99=8D?= =?UTF-8?q?=E7=BA=A7=20=20factory=E7=BC=96=E5=86=99=202=E3=80=81factory?= =?UTF-8?q?=E7=B1=BB=E4=B8=AD=E7=9B=B8=E5=85=B3=E9=AD=94=E6=B3=95=E5=80=BC?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/business/english/word/index.vue | 2 +- .../java/com/xjs/config/GaodeProperties.java | 18 ++++ .../main/java/com/xjs/consts/ApiConst.java | 47 ++++++++++ .../src/main/java/com/xjs/utils/IPUtils.java | 14 +-- .../factory/impl/TianXingAWordFactory.java | 4 +- .../api/gaode/GaodeWeatherFeignClient.java | 27 ++++++ .../client/factory/BaiduFeignFactory.java | 4 +- .../factory/GaodeWeatherFeignFactory.java | 30 +++++++ .../client/factory/RollIPFeignFactory.java | 4 +- .../client/factory/RollMMYJFeignFactory.java | 4 +- .../factory/RollTranslationFeignFactory.java | 4 +- .../factory/TianXingBDRSFeignFactory.java | 4 +- .../factory/TianXingDYRSFeignFactory.java | 4 +- .../factory/TianXingJDTCFeignFactory.java | 4 +- .../factory/TianXingMMMYFeignFactory.java | 4 +- .../factory/TianXingMMYJFeignFactory.java | 4 +- .../TianXingOneEnglishFeignFactory.java | 4 +- .../factory/TianXingPYQFeignFactory.java | 4 +- .../factory/TianXingQWRSFeignFactory.java | 5 +- .../factory/TianXingTranDictFeignFactory.java | 4 +- .../factory/TianXingWBRSFeignFactory.java | 4 +- .../factory/TianXingWXRSFeignFactory.java | 4 +- .../factory/TianXingWYYFeignFactory.java | 4 +- .../client/factory/YouDaoFeignFactory.java | 4 +- .../impl/RollMMYJCopyWritingFactory.java | 4 +- .../impl/TianXingJDTCCopyWritingFactory.java | 4 +- .../impl/TianXingMMMYCopyWritingFactory.java | 4 +- .../impl/TianXingPYQCopyWritingFactory.java | 4 +- .../impl/TianXingWYYCopyWritingFactory.java | 4 +- .../{ => impl}/TianXingOneEnglishFactory.java | 6 +- .../TianXingTopsearchAllnetworkFactory.java | 7 +- .../impl/TianXingTopsearchBaiduFactory.java | 4 +- .../impl/TianXingTopsearchDouyinFactory.java | 4 +- .../impl/TianXingTopsearchWechatFactory.java | 4 +- .../impl/TianXingTopsearchWeiboFactory.java | 4 +- .../factory/impl/BaiDuTranslationFactory.java | 4 +- .../factory/impl/RollTranslationFactory.java | 4 +- .../factory/impl/TianXingTranDictFactory.java | 4 +- .../impl/YouDaoTranslationFactory.java | 4 +- .../java/com/xjs/weather/domain/Casts.java | 65 ++++++++++++++ .../xjs/weather/domain/ForecastWeather.java | 44 +++++++++ .../com/xjs/weather/domain/NowWeather.java | 89 +++++++++++++++++++ .../com/xjs/weather/domain/RequestBody.java | 43 +++++++++ .../xjs/weather/factory/WeatherFactory.java | 18 ++++ .../factory/impl/GaodeNowWeatherFactory.java | 48 ++++++++++ .../weather/factory/impl/RollIPFactory.java | 4 +- .../TianXingOneEnglishFactoryTest.java | 1 + .../mapper/apiwarning/ApiRecordMapper.xml | 1 + 48 files changed, 542 insertions(+), 47 deletions(-) create mode 100644 xjs-business/xjs-business-common/src/main/java/com/xjs/config/GaodeProperties.java create mode 100644 xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/api/gaode/GaodeWeatherFeignClient.java create mode 100644 xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/GaodeWeatherFeignFactory.java rename xjs-business/xjs-business-openapi/src/main/java/com/xjs/oneenglish/factory/{ => impl}/TianXingOneEnglishFactory.java (93%) create mode 100644 xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/domain/Casts.java create mode 100644 xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/domain/ForecastWeather.java create mode 100644 xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/domain/NowWeather.java create mode 100644 xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/domain/RequestBody.java create mode 100644 xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/factory/WeatherFactory.java create mode 100644 xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/factory/impl/GaodeNowWeatherFactory.java diff --git a/ruoyi-ui/src/views/business/english/word/index.vue b/ruoyi-ui/src/views/business/english/word/index.vue index 55cf2d5c..f6ffe057 100644 --- a/ruoyi-ui/src/views/business/english/word/index.vue +++ b/ruoyi-ui/src/views/business/english/word/index.vue @@ -85,7 +85,7 @@ - + { log.error("api模块百度翻译服务调用失败:{},执行降级处理", cause.getMessage()); return qo -> { JSONObject jsonObject = new JSONObject(); - jsonObject.put("error", R.FAIL); + jsonObject.put(DEMOTE_ERROR, R.FAIL); return jsonObject; }; } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/GaodeWeatherFeignFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/GaodeWeatherFeignFactory.java new file mode 100644 index 00000000..6d125019 --- /dev/null +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/GaodeWeatherFeignFactory.java @@ -0,0 +1,30 @@ +package com.xjs.common.client.factory; + +import com.alibaba.fastjson.JSONObject; +import com.ruoyi.common.core.domain.R; +import com.xjs.common.client.api.gaode.GaodeWeatherFeignClient; +import lombok.extern.log4j.Log4j2; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +import static com.xjs.consts.ApiConst.DEMOTE_ERROR; + +/** + * 高德天气预报api 降级处理 + * @author xiejs + * @since 2022-01-16 + */ +@Component +@Log4j2 +public class GaodeWeatherFeignFactory implements FallbackFactory { + + @Override + public GaodeWeatherFeignClient create(Throwable cause) { + log.error("api模块高德天气预报服务调用失败:{},执行降级处理", cause.getMessage()); + return requestBody -> { + 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/common/client/factory/RollIPFeignFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/RollIPFeignFactory.java index 6c4f34af..c2dc8034 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/RollIPFeignFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/RollIPFeignFactory.java @@ -7,6 +7,8 @@ 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-15 @@ -20,7 +22,7 @@ public class RollIPFeignFactory implements FallbackFactory { log.error("api模块roll IP服务调用失败:{},执行降级处理", cause.getMessage()); return requestBody -> { JSONObject jsonObject = new JSONObject(); - jsonObject.put("error", R.FAIL); + jsonObject.put(DEMOTE_ERROR, R.FAIL); return jsonObject; }; } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/RollMMYJFeignFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/RollMMYJFeignFactory.java index 8aa06cce..c673b082 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/RollMMYJFeignFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/RollMMYJFeignFactory.java @@ -7,6 +7,8 @@ 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每日一句降级 * @author xiejs @@ -20,7 +22,7 @@ public class RollMMYJFeignFactory implements FallbackFactory { JSONObject jsonObject = new JSONObject(); - jsonObject.put("error", R.FAIL); + jsonObject.put(DEMOTE_ERROR, R.FAIL); return jsonObject; }; } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/RollTranslationFeignFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/RollTranslationFeignFactory.java index 33f6ce2c..4d9807b4 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/RollTranslationFeignFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/RollTranslationFeignFactory.java @@ -7,6 +7,8 @@ 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翻译降级 * @author xiejs @@ -20,7 +22,7 @@ public class RollTranslationFeignFactory implements FallbackFactory { JSONObject jsonObject = new JSONObject(); - jsonObject.put("error", R.FAIL); + jsonObject.put(DEMOTE_ERROR, R.FAIL); return jsonObject; }; } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingBDRSFeignFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingBDRSFeignFactory.java index ec4215cc..81993b9c 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingBDRSFeignFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingBDRSFeignFactory.java @@ -7,6 +7,8 @@ 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-11 @@ -20,7 +22,7 @@ public class TianXingBDRSFeignFactory implements FallbackFactory { JSONObject jsonObject = new JSONObject(); //构建一个异常json给下层接口处理 - jsonObject.put("error", R.FAIL); + jsonObject.put(DEMOTE_ERROR, R.FAIL); return jsonObject; }; } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingDYRSFeignFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingDYRSFeignFactory.java index a08314b6..0616ed22 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingDYRSFeignFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingDYRSFeignFactory.java @@ -7,6 +7,8 @@ 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-12 @@ -19,7 +21,7 @@ public class TianXingDYRSFeignFactory implements FallbackFactory { JSONObject jsonObject = new JSONObject(); - jsonObject.put("error", R.FAIL); + jsonObject.put(DEMOTE_ERROR, R.FAIL); return jsonObject; }; } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingJDTCFeignFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingJDTCFeignFactory.java index 7d7e5e29..42ba5c1b 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingJDTCFeignFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingJDTCFeignFactory.java @@ -7,6 +7,8 @@ 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 * @desc 天行数据经典台词降级处理 @@ -22,7 +24,7 @@ public class TianXingJDTCFeignFactory implements FallbackFactory { JSONObject jsonObject = new JSONObject(); //构建一个异常json给下层接口处理 - jsonObject.put("error", R.FAIL); + jsonObject.put(DEMOTE_ERROR, R.FAIL); return jsonObject; }; } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingMMMYFeignFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingMMMYFeignFactory.java index 9b1e443b..72cdf36d 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingMMMYFeignFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingMMMYFeignFactory.java @@ -7,6 +7,8 @@ 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 * @desc @@ -22,7 +24,7 @@ public class TianXingMMMYFeignFactory implements FallbackFactory { JSONObject jsonObject = new JSONObject(); //构建一个异常json给下层接口处理 - jsonObject.put("error", R.FAIL); + jsonObject.put(DEMOTE_ERROR, R.FAIL); return jsonObject; }; } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingMMYJFeignFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingMMYJFeignFactory.java index b4cb0775..408ca0d4 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingMMYJFeignFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingMMYJFeignFactory.java @@ -7,6 +7,8 @@ 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-08 @@ -20,7 +22,7 @@ public class TianXingMMYJFeignFactory implements FallbackFactory { JSONObject jsonObject = new JSONObject(); - jsonObject.put("error", R.FAIL); + jsonObject.put(DEMOTE_ERROR, R.FAIL); return jsonObject; }; } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingOneEnglishFeignFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingOneEnglishFeignFactory.java index ab3e248e..db163917 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingOneEnglishFeignFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingOneEnglishFeignFactory.java @@ -7,6 +7,8 @@ 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 * @desc @@ -21,7 +23,7 @@ public class TianXingOneEnglishFeignFactory implements FallbackFactory { JSONObject jsonObject = new JSONObject(); - jsonObject.put("error", R.FAIL); + jsonObject.put(DEMOTE_ERROR, R.FAIL); return jsonObject; }; } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingPYQFeignFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingPYQFeignFactory.java index da6c7edc..dd10b49a 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingPYQFeignFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingPYQFeignFactory.java @@ -7,6 +7,8 @@ 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 * @desc 天行数据平台朋友圈文案接口降级处理 @@ -21,7 +23,7 @@ public class TianXingPYQFeignFactory implements FallbackFactory { JSONObject jsonObject = new JSONObject(); //构建一个异常json给下层接口处理 - jsonObject.put("error", R.FAIL); + jsonObject.put(DEMOTE_ERROR, R.FAIL); return jsonObject; }; } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingQWRSFeignFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingQWRSFeignFactory.java index bb3d5a7f..f31facbf 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingQWRSFeignFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingQWRSFeignFactory.java @@ -7,6 +7,8 @@ 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-10 @@ -20,8 +22,7 @@ public class TianXingQWRSFeignFactory implements FallbackFactory { JSONObject jsonObject = new JSONObject(); - //构建一个异常json给下层接口处理 - jsonObject.put("error", R.FAIL); + jsonObject.put(DEMOTE_ERROR, R.FAIL); return jsonObject; }; } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingTranDictFeignFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingTranDictFeignFactory.java index d598c60d..1ec5f3a2 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingTranDictFeignFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingTranDictFeignFactory.java @@ -7,6 +7,8 @@ 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 * @desc 天行api翻译字典降级处理 @@ -20,7 +22,7 @@ public class TianXingTranDictFeignFactory implements FallbackFactory { JSONObject jsonObject = new JSONObject(); - jsonObject.put("error", R.FAIL); + jsonObject.put(DEMOTE_ERROR, R.FAIL); return jsonObject; }; } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingWBRSFeignFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingWBRSFeignFactory.java index 214b04e4..b328e28c 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingWBRSFeignFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingWBRSFeignFactory.java @@ -7,6 +7,8 @@ import lombok.extern.log4j.Log4j2; import org.springframework.cloud.openfeign.FallbackFactory; import org.springframework.stereotype.Component; +import static com.xjs.consts.ApiConst.DEMOTE_ERROR; + /** * 天行微博热搜feign降级 * @author xiejs @@ -21,7 +23,7 @@ public class TianXingWBRSFeignFactory implements FallbackFactory { JSONObject jsonObject = new JSONObject(); //构建一个异常json给下层接口处理 - jsonObject.put("error", R.FAIL); + jsonObject.put(DEMOTE_ERROR, R.FAIL); return jsonObject; }; } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingWXRSFeignFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingWXRSFeignFactory.java index e7b8bf75..a668c36b 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingWXRSFeignFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingWXRSFeignFactory.java @@ -7,6 +7,8 @@ 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-11 @@ -20,7 +22,7 @@ public class TianXingWXRSFeignFactory implements FallbackFactory { JSONObject jsonObject = new JSONObject(); //构建一个异常json给下层接口处理 - jsonObject.put("error", R.FAIL); + jsonObject.put(DEMOTE_ERROR, R.FAIL); return jsonObject; }; } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingWYYFeignFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingWYYFeignFactory.java index 1f5580f9..6e1841d9 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingWYYFeignFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/TianXingWYYFeignFactory.java @@ -7,6 +7,8 @@ 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 * @desc 天行数据平台网易云热评接口降级处理 @@ -21,7 +23,7 @@ public class TianXingWYYFeignFactory implements FallbackFactory { JSONObject jsonObject = new JSONObject(); //构建一个异常json给下层接口处理 - jsonObject.put("error", R.FAIL); + jsonObject.put(DEMOTE_ERROR, R.FAIL); return jsonObject; }; } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/YouDaoFeignFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/YouDaoFeignFactory.java index 3d14af01..876868e5 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/YouDaoFeignFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/common/client/factory/YouDaoFeignFactory.java @@ -7,6 +7,8 @@ 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 * @desc 有道翻译平台服务降级处理类 @@ -22,7 +24,7 @@ public class YouDaoFeignFactory implements FallbackFactory { return qo -> { JSONObject jsonObject = new JSONObject(); //构建一个异常json给下层接口处理 - jsonObject.put("error", R.FAIL); + jsonObject.put(DEMOTE_ERROR, R.FAIL); return jsonObject; }; } diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/factory/impl/RollMMYJCopyWritingFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/factory/impl/RollMMYJCopyWritingFactory.java index 4c4515a3..b55c12d5 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/factory/impl/RollMMYJCopyWritingFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/factory/impl/RollMMYJCopyWritingFactory.java @@ -19,6 +19,8 @@ import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.stream.Collectors; +import static com.xjs.consts.ApiConst.DEMOTE_ERROR; + /** * roll平台每日一句工厂实现 * @author xiejs @@ -41,7 +43,7 @@ public class RollMMYJCopyWritingFactory implements CopyWritingFactory { requestBody.setApp_id(rollProperties.getApp_id()); requestBody.setApp_secret(rollProperties.getApp_secret()); JSONObject jsonObject = rollMMYJFeignClient.copyWritingApi(requestBody); - if (jsonObject.containsKey("error")) { + if (jsonObject.containsKey(DEMOTE_ERROR)) { throw new ApiException("roll每日一句接口调用异常"); } JSONArray jsonArray = jsonObject.getJSONArray("data"); diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/factory/impl/TianXingJDTCCopyWritingFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/factory/impl/TianXingJDTCCopyWritingFactory.java index 25f42f51..586ed75e 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/factory/impl/TianXingJDTCCopyWritingFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/factory/impl/TianXingJDTCCopyWritingFactory.java @@ -17,6 +17,8 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import static com.xjs.consts.ApiConst.DEMOTE_ERROR; + /** * @author xiejs * @desc 天行数据经典台词工厂实现 @@ -51,7 +53,7 @@ public class TianXingJDTCCopyWritingFactory implements CopyWritingFactory { return copyWriting; }else { //调用服务失败的降级之后的处理 - if (jsonObject.containsKey("error")) { + if (jsonObject.containsKey(DEMOTE_ERROR)) { return copyWritingMapper.getOneToRandom(); } return new CopyWriting(); diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/factory/impl/TianXingMMMYCopyWritingFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/factory/impl/TianXingMMMYCopyWritingFactory.java index 26d14fb7..b2a3980a 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/factory/impl/TianXingMMMYCopyWritingFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/factory/impl/TianXingMMMYCopyWritingFactory.java @@ -17,6 +17,8 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import static com.xjs.consts.ApiConst.DEMOTE_ERROR; + /** * @author xiejs * @desc @@ -51,7 +53,7 @@ public class TianXingMMMYCopyWritingFactory implements CopyWritingFactory { return copyWriting; }else { //调用服务失败的降级之后的处理 - if (jsonObject.containsKey("error")) { + if (jsonObject.containsKey(DEMOTE_ERROR)) { return copyWritingMapper.getOneToRandom(); } return new CopyWriting(); diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/factory/impl/TianXingPYQCopyWritingFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/factory/impl/TianXingPYQCopyWritingFactory.java index 3017cab1..454011de 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/factory/impl/TianXingPYQCopyWritingFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/factory/impl/TianXingPYQCopyWritingFactory.java @@ -17,6 +17,8 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import static com.xjs.consts.ApiConst.DEMOTE_ERROR; + /** * @author xiejs * @desc 天行数据朋友圈文案平台工厂实现 @@ -53,7 +55,7 @@ public class TianXingPYQCopyWritingFactory implements CopyWritingFactory { return copyWriting; }else { //调用服务失败的降级之后的处理 - if (jsonObject.containsKey("error")) { + if (jsonObject.containsKey(DEMOTE_ERROR)) { return copyWritingMapper.getOneToRandom(); } return new CopyWriting(); diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/factory/impl/TianXingWYYCopyWritingFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/factory/impl/TianXingWYYCopyWritingFactory.java index 9be339fc..9d49f3e0 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/factory/impl/TianXingWYYCopyWritingFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/copywriting/factory/impl/TianXingWYYCopyWritingFactory.java @@ -17,6 +17,8 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import static com.xjs.consts.ApiConst.DEMOTE_ERROR; + /** * @author xiejs * @desc 天行数据网易云热评平台工厂实现 @@ -53,7 +55,7 @@ public class TianXingWYYCopyWritingFactory implements CopyWritingFactory { return copyWriting; }else { //调用服务失败的降级之后的处理 - if (jsonObject.containsKey("error")) { + if (jsonObject.containsKey(DEMOTE_ERROR)) { return copyWritingMapper.getOneToRandom(); } return new CopyWriting(); diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/oneenglish/factory/TianXingOneEnglishFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/oneenglish/factory/impl/TianXingOneEnglishFactory.java similarity index 93% rename from xjs-business/xjs-business-openapi/src/main/java/com/xjs/oneenglish/factory/TianXingOneEnglishFactory.java rename to xjs-business/xjs-business-openapi/src/main/java/com/xjs/oneenglish/factory/impl/TianXingOneEnglishFactory.java index abc6042c..a5308710 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/oneenglish/factory/TianXingOneEnglishFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/oneenglish/factory/impl/TianXingOneEnglishFactory.java @@ -1,4 +1,4 @@ -package com.xjs.oneenglish.factory; +package com.xjs.oneenglish.factory.impl; import cn.hutool.http.HttpStatus; import com.alibaba.fastjson.JSONArray; @@ -9,6 +9,7 @@ import com.xjs.config.TianXingProperties; import com.xjs.exception.ApiException; import com.xjs.oneenglish.domain.ApiEnglish; import com.xjs.oneenglish.domain.RequestBody; +import com.xjs.oneenglish.factory.OneEnglishFactory; import com.xjs.oneenglish.mapper.ApiEnglishMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -19,6 +20,7 @@ import java.util.HashMap; import java.util.Map; import java.util.concurrent.TimeUnit; +import static com.xjs.consts.ApiConst.DEMOTE_ERROR; import static com.xjs.consts.RedisConst.ONE_ENGLISH; import static com.xjs.consts.RedisConst.ONE_ENGLISH_EXPIRE; @@ -52,7 +54,7 @@ public class TianXingOneEnglishFactory implements OneEnglishFactory { } requestBody.setKey(tianXingProperties.getKey()); JSONObject jsonObject = tianXingOneEnglishFeignClient.oneEnglishApi(requestBody); - if (!jsonObject.containsKey("error")) { + if (!jsonObject.containsKey(DEMOTE_ERROR)) { if (jsonObject.getInteger("code") == HttpStatus.HTTP_OK) { JSONArray newslist = jsonObject.getJSONArray("newslist"); JSONObject content = newslist.getJSONObject(0); diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/factory/impl/TianXingTopsearchAllnetworkFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/factory/impl/TianXingTopsearchAllnetworkFactory.java index ec66862e..808f6cbf 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/factory/impl/TianXingTopsearchAllnetworkFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/factory/impl/TianXingTopsearchAllnetworkFactory.java @@ -1,12 +1,10 @@ package com.xjs.topsearch.factory.impl; -import cn.hutool.core.map.MapUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.ruoyi.common.core.constant.HttpStatus; import com.xjs.common.client.api.tianxing.TianXingQWRSFeignClient; import com.xjs.config.TianXingProperties; -import com.xjs.exception.ApiException; import com.xjs.topsearch.domain.ApiTopsearchAllnetwork; import com.xjs.topsearch.factory.TopserachFactory; import com.xjs.topsearch.service.ApiTopsearchAllnetworkService; @@ -17,9 +15,10 @@ import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; import java.util.List; -import java.util.Map; import java.util.stream.Collectors; +import static com.xjs.consts.ApiConst.DEMOTE_ERROR; + /** * 天行全网热搜工厂实现 * @@ -42,7 +41,7 @@ public class TianXingTopsearchAllnetworkFactory implements TopserachFactory topSearchApi() { JSONObject jsonObject = tianXingQWRSFeignClient.topSearchApi(tianXingProperties.getKey()); - if (!jsonObject.containsKey("error")) { + if (!jsonObject.containsKey(DEMOTE_ERROR)) { if (jsonObject.getInteger("code") == HttpStatus.SUCCESS) { JSONArray newslist = jsonObject.getJSONArray("newslist"); List collect = newslist.stream().map(arrayJson -> { diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/factory/impl/TianXingTopsearchBaiduFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/factory/impl/TianXingTopsearchBaiduFactory.java index a80152d9..df8a86e7 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/factory/impl/TianXingTopsearchBaiduFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/factory/impl/TianXingTopsearchBaiduFactory.java @@ -17,6 +17,8 @@ import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; +import static com.xjs.consts.ApiConst.DEMOTE_ERROR; + /** * 天行百度热搜工厂实现 * @@ -37,7 +39,7 @@ public class TianXingTopsearchBaiduFactory implements TopserachFactory topSearchApi() { JSONObject jsonObject = tianXingBDRSFeignClient.topSearchApi(tianXingProperties.getKey()); - if (!jsonObject.containsKey("error")) { + if (!jsonObject.containsKey(DEMOTE_ERROR)) { if (jsonObject.getInteger("code") == HttpStatus.SUCCESS) { JSONArray newslist = jsonObject.getJSONArray("newslist"); List collect = newslist.stream().map(arrayJson -> { diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/factory/impl/TianXingTopsearchDouyinFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/factory/impl/TianXingTopsearchDouyinFactory.java index 47ce3b9f..d0be531a 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/factory/impl/TianXingTopsearchDouyinFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/factory/impl/TianXingTopsearchDouyinFactory.java @@ -19,6 +19,8 @@ import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; +import static com.xjs.consts.ApiConst.DEMOTE_ERROR; + /** * 天行抖音热搜工厂实现 * @@ -42,7 +44,7 @@ public class TianXingTopsearchDouyinFactory implements TopserachFactory topSearchApi() { JSONObject jsonObject = tianXingDYRSFeignClient.topSearchApi(tianXingProperties.getKey()); - if (!jsonObject.containsKey("error")) { + if (!jsonObject.containsKey(DEMOTE_ERROR)) { if (jsonObject.getInteger("code") == HttpStatus.SUCCESS) { JSONArray newslist = jsonObject.getJSONArray("newslist"); List collect = newslist.stream().map(arrayJson -> { diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/factory/impl/TianXingTopsearchWechatFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/factory/impl/TianXingTopsearchWechatFactory.java index 798dd1a2..1e1903fd 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/factory/impl/TianXingTopsearchWechatFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/factory/impl/TianXingTopsearchWechatFactory.java @@ -18,6 +18,8 @@ import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; +import static com.xjs.consts.ApiConst.DEMOTE_ERROR; + /** * 微信热搜api工厂实现 * @@ -40,7 +42,7 @@ public class TianXingTopsearchWechatFactory implements TopserachFactory topSearchApi() { JSONObject jsonObject = tianXingWXRSFeignClient.topSearchApi(tianXingProperties.getKey()); - if (!jsonObject.containsKey("error")) { + if (!jsonObject.containsKey(DEMOTE_ERROR)) { if (jsonObject.getInteger("code") == HttpStatus.SUCCESS) { JSONArray newslist = jsonObject.getJSONArray("newslist"); List collect = newslist.stream().map(arrayJson -> { diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/factory/impl/TianXingTopsearchWeiboFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/factory/impl/TianXingTopsearchWeiboFactory.java index 49c9584c..ddd66504 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/factory/impl/TianXingTopsearchWeiboFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/topsearch/factory/impl/TianXingTopsearchWeiboFactory.java @@ -18,6 +18,8 @@ import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; +import static com.xjs.consts.ApiConst.DEMOTE_ERROR; + /** * 微博热搜api工厂实现 * @@ -42,7 +44,7 @@ public class TianXingTopsearchWeiboFactory implements TopserachFactory topSearchApi() { JSONObject jsonObject = tianXingWBRSFeignClient.topSearchApi(tianXingProperties.getKey()); - if (!jsonObject.containsKey("error")) { + if (!jsonObject.containsKey(DEMOTE_ERROR)) { if (jsonObject.getInteger("code") == HttpStatus.SUCCESS) { JSONArray newslist = jsonObject.getJSONArray("newslist"); List collect = newslist.stream().map(arrayJson -> { diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/translation/factory/impl/BaiDuTranslationFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/translation/factory/impl/BaiDuTranslationFactory.java index 5fc9618b..644bf63f 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/translation/factory/impl/BaiDuTranslationFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/translation/factory/impl/BaiDuTranslationFactory.java @@ -15,6 +15,8 @@ import org.springframework.stereotype.Service; import java.util.*; +import static com.xjs.consts.ApiConst.DEMOTE_ERROR; + /** * @author xiejs * @desc @@ -43,7 +45,7 @@ public class BaiDuTranslationFactory implements TranslationFactory { JSONObject jsonObject = baiduFeignClient.translationApi(baiDuTranslationQo); System.out.println(jsonObject); //接口内部错误以及网络错误都抛异常 - if(jsonObject.containsKey("error_code") || jsonObject.containsKey("error")){ + if(jsonObject.containsKey("error_code") || jsonObject.containsKey(DEMOTE_ERROR)){ throw new ApiException("百度翻译接口调用异常"); } TranslationVo translationVo = new TranslationVo(); diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/translation/factory/impl/RollTranslationFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/translation/factory/impl/RollTranslationFactory.java index 20581199..24f8aac3 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/translation/factory/impl/RollTranslationFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/translation/factory/impl/RollTranslationFactory.java @@ -15,6 +15,8 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Map; +import static com.xjs.consts.ApiConst.DEMOTE_ERROR; + /** * roll翻译平台工厂实现 * @@ -35,7 +37,7 @@ public class RollTranslationFactory implements TranslationFactory { rollTranslationQo.setApp_secret(rollProperties.getApp_secret()); rollTranslationQo.setContent(translationQo.getQ()); JSONObject translationApi = rollTranslationFeignClient.translationApi(rollTranslationQo); - if (translationApi.containsKey("error")) { + if (translationApi.containsKey(DEMOTE_ERROR)) { throw new ApiException("ROLL翻译接口调用异常"); } if (translationApi.getInteger("code") == 1) { diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/translation/factory/impl/TianXingTranDictFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/translation/factory/impl/TianXingTranDictFactory.java index 051deb4b..b1645345 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/translation/factory/impl/TianXingTranDictFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/translation/factory/impl/TianXingTranDictFactory.java @@ -13,6 +13,8 @@ import com.xjs.translation.factory.TranslationFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import static com.xjs.consts.ApiConst.DEMOTE_ERROR; + /** * @author xiejs * @desc 天行数据平台翻译字典实现工厂 @@ -32,7 +34,7 @@ public class TianXingTranDictFactory implements TranslationFactory { requestBody.setKey(tianXingProperties.getKey()); JSONObject jsonObject = tianXingTranDictClient.tranDictApi(requestBody); TranslationVo translationVo = new TranslationVo(); - if (!jsonObject.containsKey("error")) { + if (!jsonObject.containsKey(DEMOTE_ERROR)) { //代表没进入降级类 if (jsonObject.getInteger("code") == 250) { throw new ApiException("内容输入错误"); diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/translation/factory/impl/YouDaoTranslationFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/translation/factory/impl/YouDaoTranslationFactory.java index 9d96d779..2d79ce6d 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/translation/factory/impl/YouDaoTranslationFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/translation/factory/impl/YouDaoTranslationFactory.java @@ -15,6 +15,8 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.Map; +import static com.xjs.consts.ApiConst.DEMOTE_ERROR; + /** * @author xiejs * @desc @@ -32,7 +34,7 @@ public class YouDaoTranslationFactory implements TranslationFactory { youDaoTranslationQo.setI(translationQo.getQ()); JSONObject translationApi = youDaoFeignClient.translationApi(youDaoTranslationQo); //接口内部错误以及网络错误都抛异常 - if(!"0".equals(translationApi.getString("errorCode"))|| translationApi.containsKey("error") ){ + if(!"0".equals(translationApi.getString("errorCode"))|| translationApi.containsKey(DEMOTE_ERROR) ){ if(!"40".equals(translationApi.getString("errorCode"))){ throw new ApiException("有道翻译接口调用异常"); } 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 new file mode 100644 index 00000000..0826a288 --- /dev/null +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/domain/Casts.java @@ -0,0 +1,65 @@ +package com.xjs.weather.domain; + +import lombok.Data; + +/** + * 预报天气某天数据 + * @author xiejs + * @since 2022-01-16 + */ +@Data +public class Casts { + + /** + *日期 + */ + private String date; + + /** + *星期几 + */ + private String week; + + /** + *白天天气现象 + */ + private String dayweather; + + /** + *晚上天气现象 + */ + private String nightweather; + + /** + *白天温度 + */ + private String daytemp; + + /** + *晚上温度 + */ + private String nighttemp; + + /** + *白天风向 + */ + private String daywind; + + /** + *晚上风向 + */ + private String nightwind; + + /** + *白天风力 + */ + private String daypower; + + /** + *晚上风力 + */ + private String nightpower; + + + +} 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 new file mode 100644 index 00000000..1e0a585b --- /dev/null +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/domain/ForecastWeather.java @@ -0,0 +1,44 @@ +package com.xjs.weather.domain; + +import lombok.Data; + +import java.io.Serializable; +import java.util.List; + +/** + * 预报天气实体 + * + * @author xiejs + * @since 2022-01-16 + */ +@Data +public class ForecastWeather implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 城市名称 + */ + private String city; + + /** + * 城市编码 + */ + private String adcode; + + /** + * 省份名称 + */ + private String province; + + /** + *预报发布时间 + */ + private String reporttime; + + /** + * 预报数据list结构,元素cast,按顺序为当天、第二天、第三天的预报数据 + */ + private List CastsList; + +} diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/domain/NowWeather.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/domain/NowWeather.java new file mode 100644 index 00000000..9dc81baa --- /dev/null +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/domain/NowWeather.java @@ -0,0 +1,89 @@ +package com.xjs.weather.domain; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.ruoyi.common.core.annotation.Excel; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 实时天气实体 + * + * @author xiejs + * @since 2022-01-16 + */ +@Data +@TableName("api_now_weather") +public class NowWeather implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + + /** + * 省份名 + */ + @Excel(name = "省份名") + private String province; + + /** + * 城市名 + */ + @Excel(name = "城市名") + private String city; + + /** + * 城市编码 + */ + @Excel(name = "城市编码") + private String adcode; + + /** + * 天气现象(汉字描述) + */ + @Excel(name = "天气现象") + private String weather; + + /** + * 实时气温,单位:摄氏度 + */ + @Excel(name = "实时气温,单位:摄氏度") + private String temperature; + + /** + * 风向描述 + */ + @Excel(name = "风向描述") + private String winddirection; + + /** + * 风力级别,单位:级 + */ + @Excel(name = "风力级别,单位:级") + private String windpower; + + /** + * 空气湿度 + */ + @Excel(name = "空气湿度") + private String humidity; + + /** + * 数据发布的时间 + */ + @Excel(name = "数据发布的时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date reporttime; + + @Excel(name = "创建时间" ,dateFormat = "yyyy-MM-dd HH:mm:ss") + @TableField(fill = FieldFill.INSERT) + private Date create_time; + + + +} diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/domain/RequestBody.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/domain/RequestBody.java new file mode 100644 index 00000000..d342fb67 --- /dev/null +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/domain/RequestBody.java @@ -0,0 +1,43 @@ +package com.xjs.weather.domain; + +import lombok.Data; +import lombok.experimental.Accessors; + +/** + * 高德天气预报接口请求参数 + * @author xiejs + * @since 2022-01-16 + */ +@Data +//链式调用 +@Accessors(chain = true) +public class RequestBody { + + /** + * 请求服务权限标识: + * 用户在高德地图官网申请web服务API类型KEY + */ + private String key; + + /** + * 城市编码: + * 输入城市的adcode,adcode信息可参考城市编码表 + */ + private String city; + + /** + * 气象类型: + * 可选值:base/all + * base:返回实况天气 + * all:返回预报天气 + */ + private String extensions; + + /** + *返回格式: + * 可选值:JSON,XML + */ + private String output = "JSON"; + + +} diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/factory/WeatherFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/factory/WeatherFactory.java new file mode 100644 index 00000000..673edd1b --- /dev/null +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/factory/WeatherFactory.java @@ -0,0 +1,18 @@ +package com.xjs.weather.factory; + +/** + * 天气api工厂接口 + * @author xiejs + * @since 2022-01-16 + */ +public interface WeatherFactory { + + + /** + * 获取天气api工厂方法 + * @return T + */ + T weatherApi(); + + +} diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/factory/impl/GaodeNowWeatherFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/factory/impl/GaodeNowWeatherFactory.java new file mode 100644 index 00000000..0b88a6a2 --- /dev/null +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/factory/impl/GaodeNowWeatherFactory.java @@ -0,0 +1,48 @@ +package com.xjs.weather.factory.impl; + +import com.alibaba.fastjson.JSONObject; +import com.xjs.common.client.api.gaode.GaodeWeatherFeignClient; +import com.xjs.config.GaodeProperties; +import com.xjs.weather.domain.IPInfoVo; +import com.xjs.weather.domain.NowWeather; +import com.xjs.weather.domain.RequestBody; +import com.xjs.weather.factory.WeatherFactory; +import com.xjs.weather.service.IPService; +import lombok.extern.log4j.Log4j2; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import static com.xjs.consts.ApiConst.GAODE_EXTENSIONS_BASE; + +/** + * 高德实时天气工厂实现 + * @author xiejs + * @since 2022-01-16 + */ +@Component +@Log4j2 +public class GaodeNowWeatherFactory implements WeatherFactory { + + @Autowired + private GaodeProperties gaodeProperties; + @Autowired + private GaodeWeatherFeignClient gaodeWeatherFeignClient; + @Autowired + private IPService ipService; + + + @Override + public NowWeather weatherApi() { + RequestBody requestBody = new RequestBody(); + //获取城市编码 + IPInfoVo ipApiData = ipService.getIPApiData(); + requestBody.setKey(gaodeProperties.getKey()) + .setCity(ipApiData.getCityId()) + .setExtensions(GAODE_EXTENSIONS_BASE); + JSONObject jsonObject = gaodeWeatherFeignClient.WeatherApi(requestBody); + + + + return null; + } +} diff --git a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/factory/impl/RollIPFactory.java b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/factory/impl/RollIPFactory.java index 6a8193cd..80baddd5 100644 --- a/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/factory/impl/RollIPFactory.java +++ b/xjs-business/xjs-business-openapi/src/main/java/com/xjs/weather/factory/impl/RollIPFactory.java @@ -12,6 +12,8 @@ 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; import static com.xjs.consts.RedisConst.IP_INFO; /** @@ -42,7 +44,7 @@ public class RollIPFactory implements IPFactory { requestBody.setApp_id(rollProperties.getApp_id()); requestBody.setApp_secret(rollProperties.getApp_secret()); JSONObject jsonObject = rollIPFeignClient.IpApi(requestBody); - if (!jsonObject.containsKey("error") && jsonObject.getInteger("code") == 1) { + if (!jsonObject.containsKey(DEMOTE_ERROR) && jsonObject.getInteger("code") == ROLL_CODE_SUCCESS.intValue()) { JSONObject data = jsonObject.getJSONObject("data"); return data.toJavaObject(IPInfoVo.class); } else { diff --git a/xjs-business/xjs-business-openapi/src/test/java/com/xjs/oneenglish/factory/TianXingOneEnglishFactoryTest.java b/xjs-business/xjs-business-openapi/src/test/java/com/xjs/oneenglish/factory/TianXingOneEnglishFactoryTest.java index 9e85f181..ecd78490 100644 --- a/xjs-business/xjs-business-openapi/src/test/java/com/xjs/oneenglish/factory/TianXingOneEnglishFactoryTest.java +++ b/xjs-business/xjs-business-openapi/src/test/java/com/xjs/oneenglish/factory/TianXingOneEnglishFactoryTest.java @@ -7,6 +7,7 @@ import com.xjs.copywriting.mapper.CopyWritingMapper; import com.xjs.copywriting.service.CopyWritingService; import com.xjs.oneenglish.domain.ApiEnglish; import com.xjs.oneenglish.domain.RequestBody; +import com.xjs.oneenglish.factory.impl.TianXingOneEnglishFactory; import org.apache.ibatis.session.ExecutorType; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; diff --git a/xjs-business/xjs-business-warning/src/main/resources/mapper/apiwarning/ApiRecordMapper.xml b/xjs-business/xjs-business-warning/src/main/resources/mapper/apiwarning/ApiRecordMapper.xml index 2d7c6409..0fcc967f 100644 --- a/xjs-business/xjs-business-warning/src/main/resources/mapper/apiwarning/ApiRecordMapper.xml +++ b/xjs-business/xjs-business-warning/src/main/resources/mapper/apiwarning/ApiRecordMapper.xml @@ -26,6 +26,7 @@ and api_name like concat('%', #{apiName}, '%') + order by create_time desc