package cn.gistack.nky.service.impl;
|
|
import cn.gistack.common.utils.SpringContextUtil;
|
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 lombok.extern.slf4j.Slf4j;
|
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
|
@Slf4j
|
public class ZtApiServiceImpl implements IZtApiService {
|
|
//本地测试
|
private static final String LOCAL = "https://sk.hubeishuiyi.cn";
|
//线上
|
private static final String ONLINE = "http://10.42.6.192";
|
|
|
private static final String API_KEY = "F1DBECD719108635189480CF60E6553ADB3109616426BD537F25A430DFC613B491A025C4A51E77FD08C6E5B7CBE05917A461286E7B6D69F1AB1B14F946149D2065B0C675F8FEDF4B9B05C1496881BC5A";
|
|
/**
|
* 实时渗压监测
|
*/
|
private static final String LASTEST_OSMOTIC_PRESSURE = "/services/1234567890ABCDEFGHIJKLMN/monitor/lastest_osmotic_pressure/api?res_nm=&cd=&city_cd=&county_cd=&pageNo=1&pageSize=9999";
|
|
/**
|
* 位移监测
|
*/
|
private static final String WY_API ="/services/1234567890ABCDEFGHIJKLMN/monitor/wy/api?res_nm=&cd=&city_cd=&county_cd=&pageNo=1&pageSize=9999";
|
|
/**
|
* 渗流监测
|
*/
|
private static final String SL_API ="/services/1234567890ABCDEFGHIJKLMN/monitor/sl/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);
|
}
|
|
@Override
|
public List<DataResChildrenPo> getSl() {
|
Map<String, Object> params = new LinkedHashMap<>();
|
return getData(SL_API, "get", params);
|
}
|
|
private List<DataResChildrenPo> getData(String url, String type, Map<String, Object> params) {
|
// 获取环境
|
String activeProfile = SpringContextUtil.getActiveProfile();
|
if (activeProfile.equals("dev")) {
|
url = LOCAL+ url ;
|
}
|
if (activeProfile.equals("prod")) {
|
url = ONLINE+ url ;
|
}
|
if (activeProfile.equals("test")) {
|
url = ONLINE + url;
|
}
|
|
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();
|
log.info("中台请求地址:{}", url);
|
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){
|
|
// 获取环境
|
String activeProfile = SpringContextUtil.getActiveProfile();
|
if (activeProfile.equals("dev")) {
|
url = LOCAL+ url ;
|
}
|
if (activeProfile.equals("prod")) {
|
url = ONLINE+ url ;
|
}
|
if (activeProfile.equals("test")) {
|
url = ONLINE + url;
|
}
|
|
|
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;
|
}
|
|
}
|