From 5158c660013d52524559d4435f27b5e63d3221b7 Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Wed, 17 Nov 2021 13:54:25 +0800
Subject: [PATCH] screen-api            更改饼状图接口

---
 screen-api/src/main/java/com/moral/api/pojo/dto/dataDisplay/PieChartOfPollutionLevelDTO.java |    5 +
 screen-common/src/main/java/com/moral/util/DateUtils.java                                    |   54 +++++++++++-
 screen-api/src/main/java/com/moral/api/controller/AqiController.java                         |   93 +++++++++++++++++++++++
 screen-api/src/main/java/com/moral/api/service/impl/CityAqiDailyServiceImpl.java             |    3 
 screen-api/src/main/java/com/moral/api/pojo/form/aqi/QueryPieChartOfPollutionLevelForm.java  |   42 +++++++---
 5 files changed, 177 insertions(+), 20 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 428b780..8d3716f 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
@@ -15,6 +15,8 @@
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -107,6 +109,97 @@
         return ResultMessage.ok(dto);
     }
 
+    @GetMapping("test")
+    public ResultMessage test(){
+        List<PieChartOfPollutionLevelDTO> dtos = new ArrayList<>();
+        PieChartOfPollutionLevelDTO dto = new PieChartOfPollutionLevelDTO();
+        dto.setTime("2021-11");
+        dto.setTotalDays(10);
+        List<Map<String,Object>> list = new ArrayList<>();
+        Map<String,Object> map = new HashMap<>();
+        map.put("proportion","40%");
+        map.put("days",4);
+        map.put("pollution",0);
+        list.add(map);
+
+        Map<String,Object> map1 = new HashMap<>();
+        map1.put("proportion","30%");
+        map1.put("days",3);
+        map1.put("pollution",1);
+        list.add(map1);
+
+        Map<String,Object> map2 = new HashMap<>();
+        map2.put("proportion","30%");
+        map2.put("days",3);
+        map2.put("pollution",2);
+        list.add(map2);
+
+        Map<String,Object> map3 = new HashMap<>();
+        map3.put("proportion","0%");
+        map3.put("days",0);
+        map3.put("pollution",3);
+        list.add(map3);
+
+        Map<String,Object> map4 = new HashMap<>();
+        map4.put("proportion","0%");
+        map4.put("days",0);
+        map4.put("pollution",4);
+        list.add(map4);
+
+        Map<String,Object> map5 = new HashMap<>();
+        map5.put("proportion","0%");
+        map5.put("days",0);
+        map5.put("pollution",5);
+        list.add(map5);
+        dto.setValues(list);
+
+        PieChartOfPollutionLevelDTO dto1 = new PieChartOfPollutionLevelDTO();
+        dto1.setTime("2021-11");
+        List<Map<String,Object>> list1 = new ArrayList<>();
+
+        Map<String,Object> map11 = new HashMap<>();
+        map11.put("proportion","40%");
+        map11.put("days",4);
+        map11.put("pollution",0);
+        list1.add(map11);
+
+        Map<String,Object> map12 = new HashMap<>();
+        map12.put("proportion","30%");
+        map12.put("days",3);
+        map12.put("pollution",1);
+        list1.add(map12);
+
+        Map<String,Object> map13 = new HashMap<>();
+        map13.put("proportion","30%");
+        map13.put("days",3);
+        map13.put("pollution",2);
+        list1.add(map13);
+
+        Map<String,Object> map14 = new HashMap<>();
+        map14.put("proportion","0%");
+        map14.put("days",0);
+        map14.put("pollution",3);
+        list1.add(map14);
+
+        Map<String,Object> map15 = new HashMap<>();
+        map15.put("proportion","0%");
+        map15.put("days",0);
+        map15.put("pollution",4);
+        list1.add(map15);
+
+        Map<String,Object> map16 = new HashMap<>();
+        map16.put("proportion","0%");
+        map16.put("days",0);
+        map16.put("pollution",5);
+        list1.add(map16);
+        dto1.setValues(list1);
+        dto1.setTotalDays(10);
+
+        dtos.add(dto);
+        dtos.add(dto1);
+        return ResultMessage.ok(dtos);
+    }
+
     @GetMapping("provincialRanking")
     @ApiOperation(value = "������������", notes = "������������")
     @ApiImplicitParams(value = {
diff --git a/screen-api/src/main/java/com/moral/api/pojo/dto/dataDisplay/PieChartOfPollutionLevelDTO.java b/screen-api/src/main/java/com/moral/api/pojo/dto/dataDisplay/PieChartOfPollutionLevelDTO.java
index d3b6a2f..e09b56d 100644
--- a/screen-api/src/main/java/com/moral/api/pojo/dto/dataDisplay/PieChartOfPollutionLevelDTO.java
+++ b/screen-api/src/main/java/com/moral/api/pojo/dto/dataDisplay/PieChartOfPollutionLevelDTO.java
@@ -25,4 +25,9 @@
      *       proportion:���������������������������������������������
     * */
     private List<Map<String,Object>> values;
+
+    /*
+    * ������������
+    * */
+    private Integer totalDays;
 }
diff --git a/screen-api/src/main/java/com/moral/api/pojo/form/aqi/QueryPieChartOfPollutionLevelForm.java b/screen-api/src/main/java/com/moral/api/pojo/form/aqi/QueryPieChartOfPollutionLevelForm.java
index f8ae421..20da5e5 100644
--- a/screen-api/src/main/java/com/moral/api/pojo/form/aqi/QueryPieChartOfPollutionLevelForm.java
+++ b/screen-api/src/main/java/com/moral/api/pojo/form/aqi/QueryPieChartOfPollutionLevelForm.java
@@ -18,32 +18,48 @@
 public class QueryPieChartOfPollutionLevelForm {
 
     /*
-    * ��������� ������
-    * */
+     * ��������� ������
+     * */
     Integer regionCode;
 
     /*
-    * ���������������������
-    * ���������������������������������������������������������
-    * */
+     * ���������������������������������������������������
+     * */
+    @DateTimeFormat(pattern = "yyyy")
+    @JsonFormat(pattern = "yyyy", timezone = "GMT+8")
+    Date year;
+
+    /*
+     * ���������������������������������
+     * */
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     Date startDate;
 
     /*
-    * ���������������������
-    * */
+     * ���������������������������������
+     * */
     @DateTimeFormat(pattern = "yyyy-MM-dd")
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     Date endDate;
 
-    public boolean valid(){
-        if(regionCode==null)
+    public boolean valid() {
+        if (regionCode == null)
             return false;
-        //���������������������������������������������������������������������������������������������������
-        if(startDate==null||endDate==null){
-             startDate = DateUtils.getFirstDayOfCurrYear();
-             endDate = DateUtils.getYesterdayDate();
+        //������������������������������������������������������
+        if (startDate == null || endDate == null) {
+            if (year == null)
+                return false;
+            //���������������������
+            if (DateUtils.isCurrentYear(year)) {
+                startDate = DateUtils.getFirstDayOfCurrYear();
+                endDate = DateUtils.getYesterdayDate();
+                return true;
+            }else{
+                startDate = DateUtils.getFirstDayOfYear(year);
+                endDate = DateUtils.getLastDayOfYear(year);
+                return true;
+            }
         }
         return true;
     }
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 da4ee3d..22a2858 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
@@ -77,6 +77,7 @@
         List<Map<String,Object>> valueMap = new ArrayList<>();
         Set<Map.Entry<String, Integer>> entries = pollutionDaysMap.entrySet();
         Iterator<Map.Entry<String, Integer>> iterator = entries.iterator();
+        Integer totalDays = 0;
         while(iterator.hasNext()){
             Map.Entry<String, Integer> entry = iterator.next();
             Map<String,Object> pollutionMap = new HashMap<>();
@@ -89,11 +90,13 @@
             pollutionMap.put("pollution",pollution);
             pollutionMap.put("days",days);
             valueMap.add(pollutionMap);
+            totalDays+=days;
         }
         //������������������
         PieChartOfPollutionLevelDTO dto = new PieChartOfPollutionLevelDTO();
         dto.setTime(time);
         dto.setValues(valueMap);
+        dto.setTotalDays(totalDays);
         return dto;
     }
 }
diff --git a/screen-common/src/main/java/com/moral/util/DateUtils.java b/screen-common/src/main/java/com/moral/util/DateUtils.java
index a02f9b5..8889611 100644
--- a/screen-common/src/main/java/com/moral/util/DateUtils.java
+++ b/screen-common/src/main/java/com/moral/util/DateUtils.java
@@ -940,12 +940,52 @@
     }
 
     /*
-    * ������������������������
-    * */
-    public static Date getFirstDayOfCurrYear(){
+     * ������������������������
+     * */
+    public static Date getFirstDayOfCurrYear() {
         Calendar cal = Calendar.getInstance();
-        cal.set(Calendar.DAY_OF_YEAR,1);
+        cal.set(Calendar.DAY_OF_YEAR, 1);
         return getDate(dateToDateString(cal.getTime(), yyyy_MM_dd_EN));
+    }
+
+    /*
+     * ������������������������������
+     * */
+    public static Date getFirstDayOfYear(Date date) {
+        final Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        final int last = cal.getActualMinimum(Calendar.DAY_OF_YEAR);
+        cal.set(Calendar.DAY_OF_YEAR, last);
+        cal.set(Calendar.HOUR_OF_DAY,0);
+        cal.set(Calendar.MINUTE,0);
+        cal.set(Calendar.SECOND,0);
+        return cal.getTime();
+    }
+
+    /*
+     * ���������������������������������
+     * */
+    public static Date getLastDayOfYear(Date date) {
+        final Calendar cal = Calendar.getInstance();
+        cal.setTime(date);
+        final int last = cal.getActualMaximum(Calendar.DAY_OF_YEAR);
+        cal.set(Calendar.DAY_OF_YEAR, last);
+        cal.set(Calendar.HOUR_OF_DAY, 23);
+        cal.set(Calendar.MINUTE, 59);
+        cal.set(Calendar.SECOND, 59);
+        return cal.getTime();
+    }
+
+    /*
+     * ���������������������������
+     * */
+    public static boolean isCurrentYear(Date date) {
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(new Date());
+        int currentYear = cal.get(Calendar.YEAR);
+        cal.setTime(date);
+        int year = cal.get(Calendar.YEAR);
+        return year == currentYear;
     }
 
     /**
@@ -1040,9 +1080,9 @@
     }
 
     /*
-    * ������������Date
-    * */
-    public static Date getYesterdayDate(){
+     * ������������Date
+     * */
+    public static Date getYesterdayDate() {
         Calendar cal = Calendar.getInstance();
         cal.setTime(new Date());
         cal.set(Calendar.HOUR_OF_DAY, 0);

--
Gitblit v1.8.0