cjl
2023-07-26 0ce061d9ed37a6c25fff70e4734fa8cc8747237c
screen-job/src/main/java/com/moral/api/service/impl/CityWeatherForecastServiceImpl.java
@@ -15,6 +15,7 @@
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -39,6 +40,8 @@
    @Autowired
    private CityWeatherForecastMapper cityWeatherForecastMapper;
    //城市预测气象数据来源于,和风天气,逐小时天气预报(未来72小时)商业版
    @Override
    public void insertCityWeatherForecast() {
        Date nextDay = DateUtils.addDays(new Date(), 1);
@@ -47,7 +50,9 @@
        QueryWrapper<CityConfigWeatherForecast> wrapper = new QueryWrapper<>();
        wrapper.select("city_code", "location_id").eq("is_delete", Constants.NOT_DELETE);
        List<CityConfigWeatherForecast> list = cityConfigWeatherForecastService.list(wrapper);
        CityWeatherForecast cityWeatherForecast = new CityWeatherForecast();
        List<CityWeatherForecast> cityWeatherForecasts = new ArrayList<>();
        for (CityConfigWeatherForecast cityConfigWeatherForecast : list) {
            Integer cityCode = cityConfigWeatherForecast.getCityCode();
            Integer locationId = cityConfigWeatherForecast.getLocationId();
@@ -58,12 +63,26 @@
                String dayTime = fxTime.split("T")[0];
                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));
                    cityWeatherForecastMapper.insert(cityWeatherForecast);
                    cityWeatherForecasts.add(cityWeatherForecast);
                }
            }
        }
        cityWeatherForecastMapper.insertCityWeatherForecast(cityWeatherForecasts);
    }
    public static void main(String[] args) {
        String time = "20221231";
        long currentMils = DateUtils.getDate(time, DateUtils.yyyyMMdd_EN).getTime();
        long startMils = DateUtils.getDate("2022", DateUtils.yyyy).getTime();
        long mss = currentMils - startMils;
        long days = mss / (1000 * 60 * 60 * 24);
        System.out.println(days + 1);
    }
}