From 247e9203e92423930bee311af18c355400a9b57b Mon Sep 17 00:00:00 2001 From: cjl <909710561@qq.com> Date: Mon, 01 Apr 2024 10:01:55 +0800 Subject: [PATCH] fix:和风数据修复 --- screen-job/src/main/java/com/moral/api/service/impl/CityWeatherForecastServiceImpl.java | 44 +++++++++++++++++++++++++++++++------------- 1 files changed, 31 insertions(+), 13 deletions(-) diff --git a/screen-job/src/main/java/com/moral/api/service/impl/CityWeatherForecastServiceImpl.java b/screen-job/src/main/java/com/moral/api/service/impl/CityWeatherForecastServiceImpl.java index b8d827f..8f9cb21 100644 --- a/screen-job/src/main/java/com/moral/api/service/impl/CityWeatherForecastServiceImpl.java +++ b/screen-job/src/main/java/com/moral/api/service/impl/CityWeatherForecastServiceImpl.java @@ -1,5 +1,6 @@ package com.moral.api.service.impl; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.moral.api.entity.CityConfigWeatherForecast; @@ -12,9 +13,14 @@ import com.moral.util.DateUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.*; +import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.converter.StringHttpMessageConverter; import org.springframework.stereotype.Service; import org.springframework.web.client.RestTemplate; +import java.nio.charset.StandardCharsets; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -35,16 +41,17 @@ private CityConfigWeatherForecastService cityConfigWeatherForecastService; @Autowired - private RestTemplate restTemplate; - - @Autowired private CityWeatherForecastMapper cityWeatherForecastMapper; //���������������������������������������������������������������������������������72������������������ @Override public void insertCityWeatherForecast() { - Date nextDay = DateUtils.addDays(new Date(), 1); + RestTemplate restTemplate = new RestTemplate( + new HttpComponentsClientHttpRequestFactory()); // ������HttpClient���������GZIP + restTemplate.getMessageConverters().set(1, + new StringHttpMessageConverter(StandardCharsets.UTF_8)); + Date nextDay = DateUtils.addDays(new Date(), 0); String nextTime = DateUtils.dateToDateString(nextDay, DateUtils.yyyy_MM_dd_EN); //������������������ QueryWrapper<CityConfigWeatherForecast> wrapper = new QueryWrapper<>(); @@ -56,33 +63,44 @@ for (CityConfigWeatherForecast cityConfigWeatherForecast : list) { Integer cityCode = cityConfigWeatherForecast.getCityCode(); Integer locationId = cityConfigWeatherForecast.getLocationId(); - Map<String, Object> data = restTemplate.getForObject("https://api.qweather.com/v7/weather/72h?key=da05c6c4852d4f7aa3364a9236ee9e26&gzip=n&location={1}", Map.class, locationId); + //Map<String, Object> data = restTemplate.getForObject("https://api.qweather.com/v7/weather/72h?key=da05c6c4852d4f7aa3364a9236ee9e26&gzip=n&location={1}", Map.class, locationId); + Map<String, Object> data = restTemplate.getForObject("https://devapi.qweather.com/v7/weather/24h?location="+locationId+"&key=2430ab9e636c4950a686fbd84e3ccb3a", Map.class); + //Map<String, Object> data = restTemplate.getForObject(url,Map.class); List<Map<String, Object>> hourly = (List<Map<String, Object>>) data.get("hourly"); for (Map<String, Object> hourlyMap : hourly) { String fxTime = hourlyMap.get("fxTime").toString(); String dayTime = fxTime.split("T")[0]; - if (dayTime.equals(nextTime)) { + //if (dayTime.equals(nextTime)) { String hourTime = fxTime.substring(0, 17).replaceAll("T", " "); CityWeatherForecast cityWeatherForecast = new CityWeatherForecast(); cityWeatherForecast.setCityCode(cityCode); cityWeatherForecast.setTime(DateUtils.getDate(hourTime, DateUtils.yyyy_MM_dd_HH_EN)); cityWeatherForecast.setValue(JSONObject.toJSONString(hourlyMap)); cityWeatherForecasts.add(cityWeatherForecast); - } + //} } } cityWeatherForecastMapper.insertCityWeatherForecast(cityWeatherForecasts); } public static void main(String[] args) { - String time = "20221231"; - long currentMils = DateUtils.getDate(time, DateUtils.yyyyMMdd_EN).getTime(); + String url = "https://devapi.qweather.com/v7/weather/24h?location=101010100&key=2430ab9e636c4950a686fbd84e3ccb3a"; //��������������������������� + RestTemplate restTemplate = new RestTemplate( + new HttpComponentsClientHttpRequestFactory()); // ������HttpClient���������GZIP + restTemplate.getMessageConverters().set(1, + new StringHttpMessageConverter(StandardCharsets.UTF_8)); + Map<String, Object> data = restTemplate.getForObject(url,Map.class); + List<Map<String, Object>> hourly = (List<Map<String, Object>>) data.get("hourly"); + int i = 0; - long startMils = DateUtils.getDate("2022", DateUtils.yyyy).getTime(); - long mss = currentMils - startMils; - long days = mss / (1000 * 60 * 60 * 24); - System.out.println(days + 1); + + + + //String url = "https://devapi.qweather.com/v7/weather/24h?location=101010100&key=2430ab9e636c4950a686fbd84e3ccb3a"; //��������������������������� + // String response = restTemplate.getForObject(url,String.class); + } + } -- Gitblit v1.8.0