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