guoshilong
2023-08-04 e8ca684e5efa645a3954d507c0763e8b183bcd61
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
package cn.gistack.nky.service.impl;
 
import cn.gistack.nky.resultpojo.DataBigResultPojo;
import cn.gistack.nky.resultpojo.DataResChildrenPo;
import cn.gistack.nky.resultpojo.DataResPo;
import cn.gistack.nky.resultpojo.ZtResultPo;
import cn.gistack.nky.service.IZtApiService;
import com.alibaba.fastjson.JSONObject;
import org.springblade.core.tool.utils.ObjectUtil;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
 
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
 
/**
 * @PROJECT_NAME: skjcmanager
 * @DESCRIPTION:
 * @USER: aix
 * @DATE: 2023/7/28 17:16
 */
@Service
public class ZtApiServiceImpl implements IZtApiService {
 
    private static final String API_KEY = "F1DBECD719108635189480CF60E6553ADB3109616426BD537F25A430DFC613B491A025C4A51E77FD08C6E5B7CBE05917A461286E7B6D69F1AB1B14F946149D2065B0C675F8FEDF4B9B05C1496881BC5A";
 
    /**
     * 实时渗压监测
     */
    private static final String LASTEST_OSMOTIC_PRESSURE = "https://sk.hubeishuiyi.cn/services/1234567890ABCDEFGHIJKLMN/monitor/lastest_osmotic_pressure/api?res_nm=&cd=&city_cd=&county_cd=&pageNo=1&pageSize=9999";
 
    /**
     * 位移监测
     */
    private static final String WY_API = "https://sk.hubeishuiyi.cn/services/1234567890ABCDEFGHIJKLMN/monitor/wy/api?res_nm=&cd=&city_cd=&county_cd=&pageNo=1&pageSize=9999";
 
    @Override
    public List<DataResChildrenPo> getSy() {
        Map<String, Object> params = new LinkedHashMap<>();
        return getData(LASTEST_OSMOTIC_PRESSURE, "get", params);
    }
 
    @Override
    public List<DataResChildrenPo> getWy() {
        Map<String, Object> params = new LinkedHashMap<>();
        return getData(WY_API, "get", params);
    }
 
    @Override
    public List<DataResPo> getResSy() {
        Map<String, Object> params = new LinkedHashMap<>();
        return getResData(LASTEST_OSMOTIC_PRESSURE, "get", params);
    }
 
    @Override
    public List<DataResPo> getResWy() {
        Map<String, Object> params = new LinkedHashMap<>();
        return getResData(WY_API, "get", params);
    }
 
    private List<DataResChildrenPo> getData(String url, String type, Map<String, Object> params) {
        HttpMethod method;
        if (type.toLowerCase().equals("get".toLowerCase())) {
            method = HttpMethod.GET;
        } else {
            method = HttpMethod.POST;
        }
        // 声明一个header变量
        HttpHeaders headers = new HttpHeaders();
        // 设置apikey
        headers.set("apikey",API_KEY);
 
        HttpEntity<String> httpEntity = new HttpEntity(null, headers);
 
        RestTemplate template = new RestTemplate();
        ResponseEntity<ZtResultPo> ztResultPojoResponseEntity = template.exchange(url, method,httpEntity, ZtResultPo.class,params);
        if (ztResultPojoResponseEntity.getStatusCodeValue() == 200) {
            List<DataResChildrenPo> children = new ArrayList<>();
            List<DataResPo> data = ztResultPojoResponseEntity.getBody().getData().getData();
            //遍历数据,存为测站子集
            data.forEach(dataResPo -> {
                if (dataResPo.getChildren() != null){
                    dataResPo.getChildren().forEach(dataResChildrenPo -> {
                        children.add(dataResChildrenPo);
                    });
                }
            });
            return children;
        }
        return null;
    }
 
    private List<DataResPo> getResData(String url, String type, Map<String, Object> params){
        HttpMethod method;
        if (type.toLowerCase().equals("get".toLowerCase())) {
            method = HttpMethod.GET;
        } else {
            method = HttpMethod.POST;
        }
        // 声明一个header变量
        HttpHeaders headers = new HttpHeaders();
        // 设置apikey
        headers.set("apikey",API_KEY);
 
        HttpEntity<String> httpEntity = new HttpEntity(null, headers);
 
        RestTemplate template = new RestTemplate();
        ResponseEntity<ZtResultPo> ztResultPojoResponseEntity = template.exchange(url, method,httpEntity, ZtResultPo.class,params);
        if (ztResultPojoResponseEntity.getStatusCodeValue() == 200) {
            List<DataResPo> data = ztResultPojoResponseEntity.getBody().getData().getData();
            return data;
        }
        return null;
    }
 
}