From 009c553b99fa6a6b7aeaa6a6115ab1c6a90669d2 Mon Sep 17 00:00:00 2001
From: lizijie <lzjiiie@163.com>
Date: Tue, 15 Mar 2022 14:52:37 +0800
Subject: [PATCH] 修改环比数据接口数据格式

---
 screen-api/src/main/java/com/moral/api/service/CityAqiService.java          |    2 
 screen-api/src/main/java/com/moral/api/controller/AqiController.java        |    4 +-
 screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java |   90 ++++++++++++++++++++++++++++++++++-----------
 3 files changed, 71 insertions(+), 25 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 fdfeaca..9ae3583 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
@@ -311,8 +311,8 @@
             return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
                     ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
         }
-        List<Map<String, Object>> resultList = cityAqiService.momData(regionCode, size, current, orgId);
-        return  ResultMessage.ok(resultList);
+        Map<String, Object> result = cityAqiService.momData(regionCode, size, current, orgId);
+        return  ResultMessage.ok(result);
     }
 
 }
diff --git a/screen-api/src/main/java/com/moral/api/service/CityAqiService.java b/screen-api/src/main/java/com/moral/api/service/CityAqiService.java
index 832ef00..6c79694 100644
--- a/screen-api/src/main/java/com/moral/api/service/CityAqiService.java
+++ b/screen-api/src/main/java/com/moral/api/service/CityAqiService.java
@@ -71,5 +71,5 @@
       *@Author: lizijie
       *@Date: 2022/3/10 15:49
      **/
-    List<Map<String,Object>> momData(Integer regionCode, Integer size, Integer current, Integer orgId);
+    Map<String,Object> momData(Integer regionCode, Integer size, Integer current, Integer orgId);
 }
diff --git a/screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java b/screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java
index a701188..6676552 100644
--- a/screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java
+++ b/screen-api/src/main/java/com/moral/api/service/impl/CityAqiServiceImpl.java
@@ -1007,11 +1007,16 @@
 
     //������������
     @Override
-    public List<Map<String, Object>> momData(Integer regionCode, Integer size, Integer current, Integer orgId) {
+    public Map<String, Object> momData(Integer regionCode, Integer size, Integer current, Integer orgId) {
+        Map<String,Object> result = new HashMap<>();
         Page<CityAqi> page = new Page<>(current, size);
         Page<CityAqi> pageNext = new Page<>(current+1, size);
         QueryWrapper<CityAqi> cityAqiQueryWrapper = new QueryWrapper<>();
         cityAqiQueryWrapper.eq("city_code",regionCode);
+        Integer count = cityAqiMapper.selectCount(cityAqiQueryWrapper);
+        if (count==0){
+            return result;
+        }
         cityAqiQueryWrapper.orderByDesc("time");
         Page<CityAqi> resultPage = cityAqiMapper.selectPage(page, cityAqiQueryWrapper);
         List<CityAqi> cityAqiList = resultPage.getRecords();
@@ -1019,7 +1024,7 @@
         List<CityAqi> cityAqiListNext = resultPageNext.getRecords();
         List<Map<String,Object>> resultList = new ArrayList<>();
         if (cityAqiList.size()==0){
-            return resultList;
+            return result;
         }
         for (int i=0; i<cityAqiList.size(); i++) {
             Map<String,Object> resultMap = new HashMap<>();
@@ -1175,36 +1180,64 @@
             }
             resultMap.put("time",time.substring(0,13));
             resultMap.put("title","���"+hour+"������������������");
-            resultMap.put("info",hour+"������������AQI���"+AQI+"������������"+AQIIndex+"������"+previousHour+"������������PM10���"+PM10+"������/������������"+PM10_change+"���PM2_5���"+PM2_5+"������/������������"+PM2_5_change+"���TVOC���������"+TVOC+"������/������������O3���"+O3+"������/������������"+O3_change+"���");
+            String PM2_5_string = subZeroAndDot(PM2_5.toString());
+            String PM10_string = subZeroAndDot(PM10.toString());
+            String O3_string = subZeroAndDot(O3.toString());
+            String PM2_5_change_string = subZeroAndDot(PM2_5_change.toString());
+            String PM10_change_string = subZeroAndDot(PM10_change.toString());
+            String O3_change_string = subZeroAndDot(O3_change.toString());
+            resultMap.put("info",hour+"������������AQI���"+AQI+"������������"+AQIIndex+"������"+previousHour+"������������PM10���"+PM10_string+"������/������������"+PM10_change_string+"���PM2.5���"+PM2_5_string+"������/������������"+PM2_5_change_string+"���TVOC���������"+String.format("%.2f", TVOC)+"������/������������O3���"+O3_string+"������/������������"+O3_change_string+"���");
             QueryWrapper<CityWeather> cityWeatherQueryWrapper = new QueryWrapper<>();
             cityWeatherQueryWrapper.eq("city_code",regionCode);
             cityWeatherQueryWrapper.eq("time",cityAqiList.get(i).getTime());
             CityWeather cityWeather = cityWeatherService.getOne(cityWeatherQueryWrapper);
-            Double temp = null;
-            Double humidity = null;
-            String windDir = null;
+            Integer temp = null;
+            Integer humidity = null;
+            String windDir = "";
             Integer windScale = null;
-            String cityWeatherValue = cityWeather.getValue();
-            if (!ObjectUtils.isEmpty(cityWeatherValue)){
-                JSONObject jsonObject = JSONObject.parseObject(cityWeatherValue);
-                if (!ObjectUtils.isEmpty(jsonObject.get("temp"))){
-                    temp = Double.parseDouble(jsonObject.get("temp").toString());
-                }
-                if (!ObjectUtils.isEmpty(jsonObject.get("humidity"))){
-                    humidity = Double.parseDouble(jsonObject.get("humidity").toString());
-                }
-                if (!ObjectUtils.isEmpty(jsonObject.get("windDir"))){
-                    windDir = jsonObject.get("windDir").toString();
-                }
-                if (!ObjectUtils.isEmpty(jsonObject.get("windScale"))){
-                    windScale = Integer.parseInt(jsonObject.get("windScale").toString());
+            if (!ObjectUtils.isEmpty(cityWeather)){
+                String cityWeatherValue = cityWeather.getValue();
+                if (!ObjectUtils.isEmpty(cityWeatherValue)){
+                    JSONObject jsonObject = JSONObject.parseObject(cityWeatherValue);
+                    if (!ObjectUtils.isEmpty(jsonObject.get("temp"))){
+                        temp = Integer.parseInt(jsonObject.get("temp").toString());
+                    }
+                    if (!ObjectUtils.isEmpty(jsonObject.get("humidity"))){
+                        humidity = Integer.parseInt(jsonObject.get("humidity").toString());
+                    }
+                    if (!ObjectUtils.isEmpty(jsonObject.get("windDir"))){
+                        windDir = jsonObject.get("windDir").toString();
+                    }
+                    if (!ObjectUtils.isEmpty(jsonObject.get("windScale"))){
+                        windScale = Integer.parseInt(jsonObject.get("windScale").toString());
+                    }
                 }
             }
-            resultMap.put("weatherCondition","���������������������������"+temp+"������������"+humidity+"%,"+windDir+windScale+"������");
+            String temp_string = "";
+            if (temp!=null){
+                temp_string = temp.toString();
+            }
+            String humidity_string = "";
+            if (humidity!=null){
+                humidity_string = humidity.toString();
+            }
+            String windScale_string = "";
+            if (windScale!=null){
+                windScale_string = windScale.toString();
+            }
+            resultMap.put("weatherCondition","���������������������������"+temp_string+"������������"+humidity_string+"%,"+windDir+windScale_string+"������");
             resultMap.put("auther","���������������������������");
             resultList.add(resultMap);
         }
-        return resultList;
+        result.put("totel",count);
+        result.put("resultList",resultList);
+        result.put("current",current);
+        int totalPageNumber = count/size;
+        if(count%size != 0){
+            totalPageNumber += 1;
+        }
+        result.put("totalPageNumber",totalPageNumber);
+        return result;
     }
 
     /**
@@ -1414,4 +1447,17 @@
         Double avg = MathUtils.division(sum, num, 2);
         return avg;
     }
+
+    /**
+     * ������java������������������������������.���0
+     * @param s
+     * @return
+     */
+    public static String subZeroAndDot(String s){
+        if(s.indexOf(".") > 0){
+            s = s.replaceAll("0+?$", "");//���������������0
+            s = s.replaceAll("[.]$", "");//������������������.���������
+        }
+        return s;
+    }
 }

--
Gitblit v1.8.0