From 81aeffc830a9c9b551c1acdf1126257d8c3c2c53 Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Fri, 07 Jan 2022 12:01:29 +0800
Subject: [PATCH] screen-api 增加获取省内城市优良天气接口
---
screen-api/src/main/java/com/moral/api/service/CityAqiDailyService.java | 10 +++
screen-api/src/main/java/com/moral/api/controller/AqiController.java | 76 ++++++++++++++++---------
screen-api/src/main/java/com/moral/api/pojo/form/aqi/ProvinceCitiesPollutionLevelForm.java | 65 +++++++++++++++++++++
screen-api/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java | 19 ++++++
4 files changed, 142 insertions(+), 28 deletions(-)
diff --git a/screen-api/src/main/java/com/moral/api/controller/AqiController.java b/screen-api/src/main/java/com/moral/api/controller/AqiController.java
index a9c210c..29ef335 100644
--- a/screen-api/src/main/java/com/moral/api/controller/AqiController.java
+++ b/screen-api/src/main/java/com/moral/api/controller/AqiController.java
@@ -3,6 +3,7 @@
import com.moral.api.pojo.dto.cityAQI.CityPollutionLevel;
import com.moral.api.pojo.dto.cityAQI.MonthlyPollutionLevel;
import com.moral.api.pojo.form.aqi.AreaPollutionLevelForm;
+import com.moral.api.pojo.form.aqi.ProvinceCitiesPollutionLevelForm;
import com.moral.api.pojo.form.aqi.SpecialCitiesPollutionLevelForm;
import com.moral.api.pojo.vo.cityAQI.BarChartOfPollutionLevelVO;
import com.moral.api.pojo.vo.cityAQI.BarChartTableOfPollutionLevelVO;
@@ -113,14 +114,14 @@
}
/**
- * @Description: ������������������������������������������������
- * @Param: [form]
- * @return: com.moral.constant.ResultMessage
- * @Author: ���������
- * @Date: 2021/11/22
- */
+ * @Description: ������������������������������������������������
+ * @Param: [form]
+ * @return: com.moral.constant.ResultMessage
+ * @Author: ���������
+ * @Date: 2021/11/22
+ */
@GetMapping("queryBarChartOfPollutionLevel")
- public ResultMessage queryBarChartOfPollutionLevel(ChartOfPollutionLevelForm form){
+ public ResultMessage queryBarChartOfPollutionLevel(ChartOfPollutionLevelForm form) {
//������������������������
if (!form.valid())
return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
@@ -134,14 +135,14 @@
}
/**
- * @Description: ������������������������������������������������������������
- * @Param: [form]
- * @return: com.moral.constant.ResultMessage
- * @Author: ���������
- * @Date: 2021/11/22
- */
+ * @Description: ������������������������������������������������������������
+ * @Param: [form]
+ * @return: com.moral.constant.ResultMessage
+ * @Author: ���������
+ * @Date: 2021/11/22
+ */
@GetMapping("queryBarChatTableOfPollutionLevel")
- public ResultMessage queryBarChatTableOfPollutionLevel(ChartOfPollutionLevelForm form){
+ public ResultMessage queryBarChatTableOfPollutionLevel(ChartOfPollutionLevelForm form) {
//������������������������
if (!form.valid())
return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
@@ -200,14 +201,14 @@
}
/**
- * @Description: ������������������������������������������������
- * @Param: [regionCode]
- * @return: com.moral.constant.ResultMessage
- * @Author: ���������
- * @Date: 2021/12/30
- */
+ * @Description: ������������������������������������������������
+ * @Param: [regionCode]
+ * @return: com.moral.constant.ResultMessage
+ * @Author: ���������
+ * @Date: 2021/12/30
+ */
@GetMapping("queryAreaPollutionLevel")
- public ResultMessage queryAreaPollutionLevel(AreaPollutionLevelForm form){
+ public ResultMessage queryAreaPollutionLevel(AreaPollutionLevelForm form) {
//������������������������
if (!form.valid())
return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
@@ -219,14 +220,14 @@
}
/**
- * @Description: ������26+2������������������������
- * @Param: [form]
- * @return: com.moral.constant.ResultMessage
- * @Author: ���������
- * @Date: 2021/12/31
- */
+ * @Description: ������26+2������������������������
+ * @Param: [form]
+ * @return: com.moral.constant.ResultMessage
+ * @Author: ���������
+ * @Date: 2021/12/31
+ */
@GetMapping("qeury28CitiesPollutionLevel")
- public ResultMessage qeury28CitiesPollutionLevel(SpecialCitiesPollutionLevelForm form){
+ public ResultMessage query28CitiesPollutionLevel(SpecialCitiesPollutionLevelForm form) {
//������������������������
if (!form.valid())
return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
@@ -237,4 +238,23 @@
return ResultMessage.ok(datas);
}
+ /**
+ * @Description: ���������������������������������������������
+ * @Param: [form]
+ * @return: com.moral.constant.ResultMessage
+ * @Author: ���������
+ * @Date: 2022/1/7
+ */
+ @GetMapping("queryProvinceCitiesPollutionLevel")
+ public ResultMessage queryProvinceCitiesPollutionLevel(ProvinceCitiesPollutionLevelForm form) {
+ //������������������������
+ if (!form.valid())
+ return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
+ ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+ //������������������
+ List<CityPollutionLevel> datas = cityAqiDailyService.queryProvinceCitiesPollutionLevel(form);
+ //������������
+ return ResultMessage.ok(datas);
+ }
+
}
diff --git a/screen-api/src/main/java/com/moral/api/pojo/form/aqi/ProvinceCitiesPollutionLevelForm.java b/screen-api/src/main/java/com/moral/api/pojo/form/aqi/ProvinceCitiesPollutionLevelForm.java
new file mode 100644
index 0000000..1f30e6b
--- /dev/null
+++ b/screen-api/src/main/java/com/moral/api/pojo/form/aqi/ProvinceCitiesPollutionLevelForm.java
@@ -0,0 +1,65 @@
+package com.moral.api.pojo.form.aqi;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.moral.util.DateUtils;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.util.Date;
+
+/**
+ * @ClassName ProvinceCitiesPollutionLevelForm
+ * @Description TODO
+ * @Author ���������
+ * @Date 2022/1/7 11:20
+ * @Version TODO
+ **/
+@Data
+public class ProvinceCitiesPollutionLevelForm {
+ /*
+ * ���������
+ * */
+ private Integer regionCode;
+
+ /*
+ * ���������������������������������������������
+ * */
+ @DateTimeFormat(pattern = "yyyy")
+ @JsonFormat(pattern = "yyyy", timezone = "GMT+8")
+ private Date year;
+
+ /*
+ * ���������������������������������������������
+ * */
+ @DateTimeFormat(pattern = "yyyy-MM")
+ @JsonFormat(pattern = "yyyy-MM", timezone = "GMT+8")
+ private Date month;
+
+ /*
+ * ���������������������������������������form������������
+ * */
+ private Date startDate;
+
+ /*
+ * ���������������������������������������form������������
+ * */
+ private Date endDate;
+
+ public boolean valid() {
+ if (regionCode == null || (year == null && month == null)||(year != null && month != null))
+ return false;
+ //������regionCode������
+ String regionCodeStr = regionCode.toString();
+ if (!regionCodeStr.substring(regionCodeStr.length() - 4, regionCodeStr.length()).equals("0000"))
+ return false;
+ //������������
+ if (year != null) {
+ startDate = DateUtils.getFirstDayOfYear(year);
+ endDate = DateUtils.getLastDayOfYear(year);
+ return true;
+ }
+ startDate = DateUtils.getFirstDayOfMonth(month);
+ endDate = DateUtils.getLastDayOfMonth(month);
+ return true;
+ }
+}
diff --git a/screen-api/src/main/java/com/moral/api/service/CityAqiDailyService.java b/screen-api/src/main/java/com/moral/api/service/CityAqiDailyService.java
index 54138d4..30e4af4 100644
--- a/screen-api/src/main/java/com/moral/api/service/CityAqiDailyService.java
+++ b/screen-api/src/main/java/com/moral/api/service/CityAqiDailyService.java
@@ -5,6 +5,7 @@
import com.moral.api.pojo.dto.cityAQI.CityPollutionLevel;
import com.moral.api.pojo.dto.cityAQI.MonthlyPollutionLevel;
import com.moral.api.pojo.form.aqi.AreaPollutionLevelForm;
+import com.moral.api.pojo.form.aqi.ProvinceCitiesPollutionLevelForm;
import com.moral.api.pojo.form.aqi.SpecialCitiesPollutionLevelForm;
import com.moral.api.pojo.vo.cityAQI.PieChartOfPollutionLevelVO;
import com.moral.api.pojo.form.aqi.ChartOfPollutionLevelForm;
@@ -66,4 +67,13 @@
* @Date: 2021/12/31
*/
List<CityPollutionLevel> querySpecialCitiesPollutionLevel(SpecialCitiesPollutionLevelForm form);
+
+ /**
+ * @Description: ������������������������������������������
+ * @Param: [from]
+ * @return: java.util.List<com.moral.api.pojo.dto.cityAQI.CityPollutionLevel>
+ * @Author: ���������
+ * @Date: 2022/1/7
+ */
+ List<CityPollutionLevel> queryProvinceCitiesPollutionLevel(ProvinceCitiesPollutionLevelForm form);
}
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java
index 2fa600e..a2cf89e 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java
@@ -11,6 +11,7 @@
import com.moral.api.pojo.dto.cityAQI.MonthlyPollutionLevel;
import com.moral.api.pojo.dto.cityAQI.PollutionDaysAndProportion;
import com.moral.api.pojo.form.aqi.AreaPollutionLevelForm;
+import com.moral.api.pojo.form.aqi.ProvinceCitiesPollutionLevelForm;
import com.moral.api.pojo.form.aqi.SpecialCitiesPollutionLevelForm;
import com.moral.api.pojo.vo.cityAQI.PieChartOfPollutionLevelVO;
import com.moral.api.pojo.form.aqi.ChartOfPollutionLevelForm;
@@ -322,6 +323,24 @@
return datas;
}
+ @Override
+ public List<CityPollutionLevel> queryProvinceCitiesPollutionLevel(ProvinceCitiesPollutionLevelForm form) {
+ //������
+ Date startDate = form.getStartDate();
+ Date endDate = form.getEndDate();
+ Integer regionCode = form.getRegionCode();
+ //������������������������
+ List<SysArea> allCities = sysAreaService.getChildren(regionCode);
+ //������������������������
+ List<CityPollutionLevel> datas = new ArrayList<>();
+ //��������������������� ������������
+ for (SysArea city : allCities) {
+ CityPollutionLevel cityPollutionLevel = calculateDaysByTimeAndCityCode(city,startDate,endDate);
+ datas.add(cityPollutionLevel);
+ }
+ return datas;
+ }
+
/**
* @Description: ���������������������������������������������������������
* @Param: [area, startDate, endDate]
--
Gitblit v1.8.0