jinpengyong
2020-09-28 48bb075f91c5daf35cff0a16abe1136f132aafb4
不同天气给定不同分数
6 files modified
95 ■■■■ changed files
src/main/java/com/moral/mapper/AQIMapper.java 2 ●●●●● patch | view | raw | blame | history
src/main/java/com/moral/mapper/HistoryMapper.java 1 ●●●● patch | view | raw | blame | history
src/main/java/com/moral/service/impl/ForecastWeatherServiceImpl.java 23 ●●●● patch | view | raw | blame | history
src/main/java/com/moral/service/impl/RealWeatherServiceImpl.java 57 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/AQIMapper.xml 8 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/HistoryHourlyMapper.xml 4 ●●●● patch | view | raw | blame | history
src/main/java/com/moral/mapper/AQIMapper.java
@@ -11,4 +11,6 @@
    List<Map<String,Object>> getO3(Map<String,Object> params);
    List<Map<String,Object>> getAqiByHour(Map<String,Object> params);
}
src/main/java/com/moral/mapper/HistoryMapper.java
@@ -32,4 +32,5 @@
    int deleteHistoryData(String oldTime);
    void deletePartition(@Param("p") String p);
}
src/main/java/com/moral/service/impl/ForecastWeatherServiceImpl.java
@@ -198,15 +198,32 @@
                String condition = "";
                if ("晴".equals(text)) {
                    condition = "100";
                } else if ("雾".equals(text)) {
                    condition = "90";
                } else if ("多云".equals(text)) {
                    condition = "80";
                } else if ("阴".equals(text)) {
                } else if ("霾".equals(text)) {
                    condition = "70";
                } else if ("阴".equals(text) || "扬沙".equals(text) || "浮尘".equals(text) || "".equals(text)) {
                    condition = "60";
                } else if ("雷阵雨".equals(text) || "阵雨".equals(text)) {
                } else if ("阵雨".equals(text)) {
                    condition = "45";
                } else if ("雷阵雨".equals(text)) {
                    condition = "40";
                } else if ("雷阵雨转小雨".equals(text) || "阵雨转小雨".equals(text)) {
                    condition = "30";
                } else if ("小雨".equals(text)) {
                    condition = "20";
                } else if ("雨".equals(text)) {
                    condition = "10";
                } else if ("雷阵雨转中雨".equals(text)) {
                    condition = "5";
                } else if ("雷阵雨转大雨".equals(text)) {
                    condition = "4";
                } else if ("中雨".equals(text) || "大雨".equals(text) || "暴雨".equals(text)
                        || "小雪".equals(text) || "中雪".equals(text) || "大雪".equals(text)
                        || "雨夹雪".equals(text) || "雨夹雪(伴有冰雹)".equals(text) || "暴雪".equals(text)
                ) {
                    condition = "0";
                } else {
                    condition = "50";
@@ -273,7 +290,7 @@
                map1.put("times", times);
                map1.put("time", hour);
                List<Map<String, Object>> O3List = new ArrayList<>();
                List<Map<String, Object>> beamList=new ArrayList<>();
                List<Map<String, Object>> beamList = new ArrayList<>();
                if (times.size() != 0) {
                    O3List = aqiMapper.getO3(map1);
                    if (O3List.size() == 0) {
src/main/java/com/moral/service/impl/RealWeatherServiceImpl.java
@@ -147,34 +147,55 @@
            map.put("data", nowMap);
        }
        List<Map<String,Object>> resultList=new ArrayList<>();
        List<Map<String, Object>> resultList = new ArrayList<>();
        for (Map<String, Object> map : hashSet) {
            Map<String,Object> resultMap=new HashMap<>();
            resultMap.put("cityCode",map.get("cityCode").toString());
            resultMap.put("time",now);
            Map<String, Object> resultMap = new HashMap<>();
            resultMap.put("cityCode", map.get("cityCode").toString());
            resultMap.put("time", now);
            Map<String, Object> jsonMap = (Map<String, Object>) map.get("data");
            //风速km/h->m/s
            Double windSpeed = Double.valueOf(jsonMap.get("windSpeed").toString());
            windSpeed = windSpeed * 1000 / 3600;
            jsonMap.put("windSpeed",df.format(windSpeed));
            jsonMap.put("windSpeed", df.format(windSpeed));
            jsonMap.remove("obsTime");
            jsonMap.remove("icon");
            String text = jsonMap.get("text").toString();
            if(text.equals("晴")){
                jsonMap.put("condition","100");
            }else if(text.equals("多云")){
                jsonMap.put("condition","80");
            }else if(text.equals("阴")){
                jsonMap.put("condition","60");
            }else if(text.equals("雷阵雨")||text.equals("阵雨")){
                jsonMap.put("condition","40");
            }else if(text.equals("小雨")){
                jsonMap.put("condition","20");
            }else if(text.equals("雨")){
                jsonMap.put("condition","0");
            String condition;
            if ("晴".equals(text)) {
                condition = "100";
            } else if ("雾".equals(text)) {
                condition = "90";
            } else if ("多云".equals(text)) {
                condition = "80";
            } else if ("霾".equals(text)) {
                condition = "70";
            } else if ("阴".equals(text) || "扬沙".equals(text) || "浮尘".equals(text) || "".equals(text)) {
                condition = "60";
            } else if ("阵雨".equals(text)) {
                condition = "45";
            } else if ("雷阵雨".equals(text)) {
                condition = "40";
            } else if ("雷阵雨转小雨".equals(text) || "阵雨转小雨".equals(text)) {
                condition = "30";
            } else if ("小雨".equals(text)) {
                condition = "20";
            } else if ("雨".equals(text)) {
                condition = "10";
            } else if ("雷阵雨转中雨".equals(text)) {
                condition = "5";
            } else if ("雷阵雨转大雨".equals(text)) {
                condition = "4";
            } else if ("中雨".equals(text) || "大雨".equals(text) || "暴雨".equals(text)
                    || "小雪".equals(text) || "中雪".equals(text) || "大雪".equals(text)
                    || "雨夹雪".equals(text) || "雨夹雪(伴有冰雹)".equals(text)||"暴雪".equals(text)
            ) {
                condition = "0";
            } else {
                condition = "50";
            }
            resultMap.put("json",JSONObject.toJSONString(jsonMap));
            jsonMap.put("condition",condition);
            resultMap.put("json", JSONObject.toJSONString(jsonMap));
            resultList.add(resultMap);
        }
        realWeatherMapper.deleteRealWeather(sdf1.format(now));
src/main/resources/mapper/AQIMapper.xml
@@ -23,4 +23,12 @@
            #{time}
        </foreach>
    </select>
    <select id="getAqiByHour" resultType="java.util.Map">
        select DATE_FORMAT(time, '%Y-%m-%d %H:%i:%s') time,
        value
        from history_aqi_${timeUnits}
        where city_code=#{cityCode}
        and DATE_FORMAT(time, '%Y%H')=#{yearAndHour}
    </select>
</mapper>
src/main/resources/mapper/HistoryHourlyMapper.xml
@@ -68,7 +68,8 @@
        DATE_FORMAT(h.time,#{typeFormat}) time,
        avg(h.json->'$.e12[0]') 'beam'
        FROM history_hourly h
        WHERE h.mac in
        WHERE h.json->'$.e12[0]' is not null
        and h.mac in
        <foreach collection="macs" open="(" separator="," close=")" item="mac">
            #{mac}
        </foreach>
@@ -76,7 +77,6 @@
        <foreach collection="times" open="(" separator="," close=")" item="time">
            #{time}
        </foreach>
        and h.json->'$.e12[0]' is not null
        group by h.time
    </select>