ZhuDongming
2020-05-19 e51e2d053b498e236097bcb4012c8446d672be86
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
package com.moral.common.util;
 
import java.text.ParseException;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
 
import org.apache.commons.lang3.time.DateUtils;
 
public class ParameterUtils {
 
    public static void getTimeType4Time(Map<String, Object> parameters) {
        if (parameters.containsKey("time")) {
            int length = ((String) parameters.get("time")).split("-").length;
            if (length == 2) {
                parameters.put("type", "month");
            } else if (length == 3) {
                parameters.put("type", "day");
            } else if (length == 1) {
                parameters.put("type", "year");
            }
        }
    }
 
    public static void getRegionType4RegionCode(Map<String, Object> parameters) {
        String regionType = "village";
        String nextLevel = "";
        if (parameters.containsKey("regionCode")) {
            String regionCode = parameters.get("regionCode").toString();
            if (regionCode.length() == 6) {
                if (regionCode.endsWith("0000")) {
                    regionType = "province";
                    nextLevel = "city";
                } else if (regionCode.endsWith("00")) {
                    regionType = "city";
                    nextLevel = "area";
                } else {
                    regionType = "area";
                    nextLevel = "town";
                }
            } else if (regionCode.length() == 12) {
                if (regionCode.endsWith("000")) {
                    regionType = "town";
                    nextLevel = "village";
                }
            }
        }
        parameters.put("regionType", regionType);
        parameters.put("nextLevel", nextLevel);
    }
 
    public static void  getElementByType(Map<String, Object> parameters){
        if (parameters.containsKey("type")) {
            parameters.put("timeUnits", "daily");
            switch (parameters.get("type").toString()) {
            case "year":
                parameters.put("format", "yyyy");
                parameters.put("typeFormat", "%Y-%m");
                parameters.put("timeLength", 12);
                parameters.put("field", Calendar.YEAR);
                break;
            case "month":
                parameters.put("format", "yyyy-MM");
                parameters.put("typeFormat", "%Y-%m-%d");
                parameters.put("timeLength", 28);
                parameters.put("field", Calendar.MONTH);
                break;
            case "day":
                parameters.put("format", "yyyy-MM-dd");
                parameters.put("typeFormat", "%Y-%m-%d %H");
                parameters.put("timeLength", 24);
                parameters.put("field", Calendar.DATE);
                parameters.put("timeUnits", "hourly");
                break;
            case "hour":
                parameters.put("format", "yyyy-MM-dd HH");
                parameters.put("typeFormat", "%Y-%m-%d %H:%i");
                parameters.put("timeLength", 60);
                parameters.put("field", Calendar.HOUR);
                parameters.put("timeUnits", "minutely");
                break;
            }
        }
    }
    
    public static void getStartAndEndByTime(Map<String, Object> parameters) throws ParseException {
        String time = (String) parameters.get("time");
        String format = (String) parameters.get("format");
        Integer field = Integer.valueOf(parameters.get("field").toString());
        Date start = DateUtils.parseDate(time, format);
 
        Calendar instance = Calendar.getInstance();
        instance.setTime(start);
        instance.add(field, 1);
        Date end = instance.getTime();
 
        parameters.put("start", start);
        parameters.put("end", end);
    }
 
}