diff --git a/blossom-backend/backend/src/main/java/com/blossom/backend/base/param/ParamEnum.java b/blossom-backend/backend/src/main/java/com/blossom/backend/base/param/ParamEnum.java index add7ef7..8a3d9e0 100644 --- a/blossom-backend/backend/src/main/java/com/blossom/backend/base/param/ParamEnum.java +++ b/blossom-backend/backend/src/main/java/com/blossom/backend/base/param/ParamEnum.java @@ -28,6 +28,10 @@ public enum ParamEnum { * 和风天气KEY */ HEFENG_KEY(true, 20,""), + /** + * 和风天气KEY + */ + HEFENG_HOST(false, 100,""), /** * GITEE key diff --git a/blossom-backend/backend/src/main/java/com/blossom/backend/thirdparty/hefeng/WeatherManager.java b/blossom-backend/backend/src/main/java/com/blossom/backend/thirdparty/hefeng/WeatherManager.java index f1a618e..a48759c 100644 --- a/blossom-backend/backend/src/main/java/com/blossom/backend/thirdparty/hefeng/WeatherManager.java +++ b/blossom-backend/backend/src/main/java/com/blossom/backend/thirdparty/hefeng/WeatherManager.java @@ -36,10 +36,10 @@ import java.util.concurrent.TimeUnit; public class WeatherManager { private static final Logger log = LoggerFactory.getLogger(WeatherManager.class); - private static final String URL_CITY = "https://geoapi.qweather.com/v2/city/lookup"; - private static final String URL_NOW = "https://devapi.heweather.net/v7/weather/now"; - private static final String URL_DAILY = "https://devapi.heweather.net/v7/weather/3d"; - private static final String URL_HOURLY = "https://devapi.heweather.net/v7/weather/24h"; + private static final String URL_CITY = "https://%s/geo/v2/city/lookup"; + private static final String URL_NOW = "https://%s/v7/weather/now"; + private static final String URL_DAILY = "https://%s/v7/weather/3d"; + private static final String URL_HOURLY = "https://%s/v7/weather/24h"; private static final String SUCCESS = "200"; /** @@ -66,8 +66,8 @@ public class WeatherManager { return cache; } log.info("[BLOSSOM] refresh weather: {}", location); - Map maps = initParam(location); - if (maps == null) { + HeFengReq params = initParam(location); + if (params == null) { log.info("未配置天气信息, 忽略天气查询"); WeatherRes weather = new WeatherRes(); CityRes.Location l = new CityRes.Location(); @@ -81,22 +81,22 @@ public class WeatherManager { DailyRes daily = null; HourlyRes hourly = null; try { - cityStr = HttpUtil.get(URL_CITY, maps); + cityStr = HttpUtil.get(String.format(URL_CITY, params.getHost()), params.getApiParam()); if (StrUtil.isNotBlank(cityStr)) { city = JsonUtil.toObj(cityStr, CityRes.class); } - nowStr = HttpUtil.get(URL_NOW, maps); + nowStr = HttpUtil.get(String.format(URL_NOW, params.getHost()), params.getApiParam()); if (StrUtil.isNotBlank(nowStr)) { now = JsonUtil.toObj(nowStr, NowRes.class); } - dailyStr = HttpUtil.get(URL_DAILY, maps); + dailyStr = HttpUtil.get(String.format(URL_DAILY, params.getHost()), params.getApiParam()); if (StrUtil.isNotBlank(dailyStr)) { daily = JsonUtil.toObj(dailyStr, DailyRes.class); } - hourlyStr = HttpUtil.get(URL_HOURLY, maps); + hourlyStr = HttpUtil.get(String.format(URL_HOURLY, params.getHost()), params.getApiParam()); if (StrUtil.isNotBlank(hourlyStr)) { hourly = JsonUtil.toObj(hourlyStr, HourlyRes.class); } @@ -159,13 +159,20 @@ public class WeatherManager { * * @return 返回查询参数 */ - public Map initParam(String location) { - Map paramMap = paramService.selectMap(false, ParamEnum.HEFENG_KEY); - if (MapUtil.isNotEmpty(paramMap) && StrUtil.isNotBlank(paramMap.get(ParamEnum.HEFENG_KEY.name()))) { + public HeFengReq initParam(String location) { + Map paramMap = paramService.selectMap(false, ParamEnum.HEFENG_KEY, ParamEnum.HEFENG_HOST); + if (MapUtil.isNotEmpty(paramMap) + && StrUtil.isNotBlank(paramMap.get(ParamEnum.HEFENG_KEY.name())) + && StrUtil.isNotBlank(paramMap.get(ParamEnum.HEFENG_HOST.name())) + ) { + HeFengReq req = new HeFengReq(); + req.setHost(paramMap.get(ParamEnum.HEFENG_HOST.name())); + Map map = new HashMap<>(2); map.put("location", location); map.put("key", paramMap.get(ParamEnum.HEFENG_KEY.name())); - return map; + req.setApiParam(map); + return req; } return null; } diff --git a/blossom-backend/backend/src/main/java/com/blossom/backend/thirdparty/hefeng/pojo/HeFengReq.java b/blossom-backend/backend/src/main/java/com/blossom/backend/thirdparty/hefeng/pojo/HeFengReq.java new file mode 100644 index 0000000..4eb9d70 --- /dev/null +++ b/blossom-backend/backend/src/main/java/com/blossom/backend/thirdparty/hefeng/pojo/HeFengReq.java @@ -0,0 +1,22 @@ +package com.blossom.backend.thirdparty.hefeng.pojo; + +import lombok.Data; + +import java.util.Map; + +/** + * 和风天气请求接口 + */ +@Data +public class HeFengReq { + + /** + * 和风用户域名 + */ + private String host; + /** + * 和风接口请求参数 + */ + private Map apiParam; + +} diff --git a/blossom-backend/backend/src/main/resources/config/application-dev.yml b/blossom-backend/backend/src/main/resources/config/application-dev.yml index 1874b92..afb04cb 100644 --- a/blossom-backend/backend/src/main/resources/config/application-dev.yml +++ b/blossom-backend/backend/src/main/resources/config/application-dev.yml @@ -1,7 +1,7 @@ spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://192.168.31.99:3306/xzzz-blossom?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&allowMultiQueries=true&useSSL=false&&serverTimezone=GMT%2B8 + url: jdbc:mysql://115.120.218.188:3306/xzzz-blossom?useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true&allowMultiQueries=true&useSSL=false&&serverTimezone=GMT%2B8 username: root password: jasmine888 hikari: diff --git a/blossom-backend/backend/src/main/resources/schema-mysql.sql b/blossom-backend/backend/src/main/resources/schema-mysql.sql index 5c4f4cf..0bd9db9 100644 --- a/blossom-backend/backend/src/main/resources/schema-mysql.sql +++ b/blossom-backend/backend/src/main/resources/schema-mysql.sql @@ -77,6 +77,19 @@ WHERE NOT EXISTS(SELECT 1 -- INSERT INTO base_sys_param (id, param_name, param_value, param_desc, open_state, cre_time, upd_time) SELECT * +FROM (select 12 as id, + 'HEFENG_HOST' as param_name, + 'abc.com' as param_value, + '和风天气用户 HOST' as param_desc, + 1 as open_state, + CURRENT_TIMESTAMP as cre_time, + CURRENT_TIMESTAMP as upd_time) as temp +WHERE NOT EXISTS(SELECT 1 + FROM base_sys_param + WHERE id = 12); +-- +INSERT INTO base_sys_param (id, param_name, param_value, param_desc, open_state, cre_time, upd_time) +SELECT * FROM (select 21 as id, 'GITEE_ACCESS_TOKEN' as param_name, '' as param_value, diff --git a/blossom-editor/src/renderer/src/views/index/SettingConfigServer.vue b/blossom-editor/src/renderer/src/views/index/SettingConfigServer.vue index 69a1702..97554e0 100644 --- a/blossom-editor/src/renderer/src/views/index/SettingConfigServer.vue +++ b/blossom-editor/src/renderer/src/views/index/SettingConfigServer.vue @@ -70,6 +70,10 @@ + + + +
@@ -128,6 +132,7 @@ const serverParamForm = ref({ ARTICLE_LOG_EXP_DAYS: 0, ARTICLE_RECYCLE_EXP_DAYS: 0, BACKUP_EXP_DAYS: 0, + HEFENG_HOST: '', HEFENG_KEY: '', BLOSSOM_OBJECT_STORAGE_DOMAIN: '', SERVER_MACHINE_EXPIRE: '',