From 87323a0b0d5039b0c95d8b7d18e5426d8ebd1eb8 Mon Sep 17 00:00:00 2001
From: jinpengyong <jpy123456>
Date: Wed, 27 Oct 2021 14:09:48 +0800
Subject: [PATCH] 城市aqi数据接口变更
---
screen-job/src/main/java/com/moral/api/service/CityAqiService.java | 3 +
screen-job/src/main/java/com/moral/api/task/AqiInsertTask.java | 16 +++++++-
screen-job/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java | 61 ++++++++++++++++++++++++++----
3 files changed, 70 insertions(+), 10 deletions(-)
diff --git a/screen-job/src/main/java/com/moral/api/service/CityAqiService.java b/screen-job/src/main/java/com/moral/api/service/CityAqiService.java
index 17e3c3c..0644cde 100644
--- a/screen-job/src/main/java/com/moral/api/service/CityAqiService.java
+++ b/screen-job/src/main/java/com/moral/api/service/CityAqiService.java
@@ -16,4 +16,7 @@
//aqi���������������insert
void insertCityAqi();
+ //������aqi���������������
+ void insertCityAqiDaily();
+
}
diff --git a/screen-job/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java b/screen-job/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java
index b73ff71..310246f 100644
--- a/screen-job/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java
+++ b/screen-job/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java
@@ -4,7 +4,6 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.moral.api.entity.CityAqi;
import com.moral.api.entity.CityConfig;
-import com.moral.api.entity.CityWeather;
import com.moral.api.mapper.CityAqiMapper;
import com.moral.api.service.CityAqiService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -13,12 +12,15 @@
import com.moral.util.DateUtils;
import org.springframework.beans.factory.annotation.Autowired;
+
import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
import org.springframework.web.client.RestTemplate;
import java.util.Date;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
/**
* <p>
@@ -44,20 +46,63 @@
public void insertCityAqi() {
//������������������
QueryWrapper<CityConfig> wrapper = new QueryWrapper<>();
- wrapper.select("city_code", "location_id").eq("is_delete", Constants.NOT_DELETE);
+ wrapper.select("city_code", "city_id").eq("is_delete", Constants.NOT_DELETE);
List<CityConfig> list = cityConfigService.list(wrapper);
+ Date time = DateUtils.dataToTimeStampTime(new Date(), DateUtils.yyyy_MM_dd_HH_EN);
for (CityConfig cityConfig : list) {
String cityCode = cityConfig.getCityCode();
- Integer locationId = cityConfig.getLocationId();
- Map<String, Object> data = restTemplate.getForObject("https://api.qweather.com/v7/air/now?key=da05c6c4852d4f7aa3364a9236ee9e26&gzip=n&location={1}", Map.class, locationId);
- Map<String, Object> now = (Map<String, Object>) data.get("now");
+ Map<String, Object> data;
+ try {
+ //������������������������������
+ data = restTemplate.getForObject("http://sapi.7drlb.com/api/mj?cityID={1}&apiKey=aqi", Map.class, cityConfig.getCityId());
+ } catch (Exception e) {
+ continue;
+ }
+ if (ObjectUtils.isEmpty(data)) {
+ continue;
+ }
+
+ Map<String, Object> map = (Map<String, Object>) data.get("data");
+ Map<String, Object> aqi = (Map<String, Object>) map.get("aqi");
+ aqi.put("pm2_5", aqi.remove("pm25C"));
+ aqi.remove("pm25");
+ aqi.put("pm10", aqi.remove("pm10C"));
+ aqi.put("so2", aqi.remove("so2C"));
+ aqi.put("no2", aqi.remove("no2C"));
+ aqi.put("co", aqi.remove("coC"));
+ aqi.put("o3", aqi.remove("o3c"));
+ aqi.put("aqi", aqi.remove("value"));
CityAqi cityAqi = new CityAqi();
cityAqi.setCityCode(cityCode);
- now.put("pm2_5", now.remove("pm2p5"));
- cityAqi.setValue(JSONObject.toJSONString(now));
- Date time = DateUtils.dataToTimeStampTime(new Date(), DateUtils.yyyy_MM_dd_HH_EN);
cityAqi.setTime(time);
+ cityAqi.setValue(JSONObject.toJSONString(aqi));
cityAqiMapper.insert(cityAqi);
}
}
+
+ @Override
+ public void insertCityAqiDaily() {
+ String format = DateUtils.yyyy_MM_dd_EN;
+ Date now = new Date();
+ //���������������������
+ Date start = DateUtils.dataToTimeStampTime(DateUtils.getDateOfDay(now, -1), format);
+ //���������������������
+ Date end = DateUtils.dataToTimeStampTime(now, format);
+ //������������������aqi������������
+ QueryWrapper<CityAqi> wrapper = new QueryWrapper<>();
+ wrapper.select("city_code", "value")
+ .ge("time", DateUtils.dateToDateString(start))
+ .lt("time", DateUtils.dateToDateString(end));
+ List<Map<String, Object>> dailyData = cityAqiMapper.selectMaps(wrapper);
+
+ if (dailyData.size() == 0) {
+ return;
+ }
+ //���city_code������
+ Map<String, List<Map<String, Object>>> data = dailyData.parallelStream().collect(Collectors.groupingBy(o -> (String) o.get("city_code")));
+ data.forEach((cityCode, value) -> {
+
+ });
+
+ }
}
diff --git a/screen-job/src/main/java/com/moral/api/task/AqiInsertTask.java b/screen-job/src/main/java/com/moral/api/task/AqiInsertTask.java
index 001b6f6..349cd24 100644
--- a/screen-job/src/main/java/com/moral/api/task/AqiInsertTask.java
+++ b/screen-job/src/main/java/com/moral/api/task/AqiInsertTask.java
@@ -18,7 +18,7 @@
@Autowired
private CityAqiService cityAqiService;
- //aqi������������������������
+ //���������aqi������������������
@XxlJob("insertHistoryAqi")
public ReturnT insertHistoryAqi() {
try {
@@ -30,7 +30,7 @@
return ReturnT.SUCCESS;
}
- //aqi���������������������
+ //������aqi������������������
@XxlJob("insertCityAqi")
public ReturnT insertCityAqi() {
try {
@@ -41,4 +41,16 @@
}
return ReturnT.SUCCESS;
}
+
+ //���������aqi���������������
+ @XxlJob("insertCityAqiDaily")
+ public ReturnT insertCityAqiDaily(){
+ try {
+ cityAqiService.insertCityAqiDaily();
+ } catch (Exception e) {
+ XxlJobHelper.log(e.getMessage());
+ return new ReturnT(ReturnT.FAIL_CODE, e.getMessage());
+ }
+ return ReturnT.SUCCESS;
+ }
}
--
Gitblit v1.8.0