package com.ruoyi.device.uav.service;
|
|
import com.alibaba.fastjson.JSON;
|
import com.dtflys.forest.exceptions.ForestNetworkException;
|
import com.dtflys.forest.exceptions.ForestRuntimeException;
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
import com.fasterxml.jackson.databind.JsonMappingException;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.ruoyi.common.core.redis.RedisCache;
|
import com.ruoyi.common.utils.ConfigUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.device.uav.websocketclient.UAVWebsocketClient;
|
import com.ruoyi.sy.controller.ArdSyCarController;
|
import com.ruoyi.utils.forest.UavClient;
|
import lombok.extern.slf4j.Slf4j;
|
import okhttp3.*;
|
import org.apache.commons.codec.binary.Base64;
|
import org.apache.commons.collections4.map.HashedMap;
|
import org.java_websocket.WebSocket;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.http.HttpMethod;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.PostConstruct;
|
import javax.crypto.Cipher;
|
import javax.crypto.spec.SecretKeySpec;
|
import java.io.IOException;
|
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.Method;
|
import java.net.URI;
|
import java.net.URISyntaxException;
|
import java.util.*;
|
|
@Service
|
@Slf4j(topic = "uav")
|
public class UavService {
|
/*uav:
|
host: http://112.98.126.2:6100/
|
username: kaifabailu
|
password: ardkj@2014
|
salt: 0123456789012345
|
*/
|
private String username;//用户名
|
|
private String password;//密码
|
|
private String salt; //盐
|
|
private String host;//uav服务器11
|
|
|
private Map uavUser;//登录的用户信息
|
private ObjectMapper om = new ObjectMapper();
|
|
private Map<String, UAVWebsocketClient> UAVWebsocketClientMap = new HashedMap();
|
|
private String token;
|
|
private String workspaceId;
|
|
@Autowired
|
private UavClient uavClient;
|
@Autowired
|
private RedisCache redisCache;
|
|
@Value("${uav.enabled}")
|
private Boolean uavEnabled;
|
|
@PostConstruct
|
public void created() {
|
if(!uavEnabled){//无人机加入开关
|
return;
|
}
|
|
getUavConfig();
|
this.login();
|
//创建无人机Websocket客户端
|
createWebsocketCients();
|
}
|
|
private void getUavConfig() {
|
/*this.host = ConfigUtils.getConfigValue("uav_host");
|
this.username = ConfigUtils.getConfigValue("uav_username");
|
this.password = ConfigUtils.getConfigValue("uav_password");
|
this.salt = ConfigUtils.getConfigValue("uav_salt");*/
|
this.host = "http://112.98.126.2:6100/";
|
this.username = "znstest";
|
this.password = "znstest";
|
this.salt = "0123456789012345";
|
if (StringUtils.isEmpty(this.host) || StringUtils.isEmpty(this.username) || StringUtils.isEmpty(this.password) || StringUtils.isEmpty(this.salt)) {
|
throw new RuntimeException("无人机参数配置缺失:");
|
}
|
}
|
|
public String doUavRequest(HttpMethod method, String url, String data) {
|
|
getUavConfig();
|
String res = null;
|
Method requestMethod = null;
|
//获取method
|
try {
|
requestMethod = UavClient.class.getMethod(method.name(), String.class, String.class, String.class);
|
} catch (NoSuchMethodException e) {
|
e.printStackTrace();
|
}
|
//执行method
|
// this.getToken();//获取token验证,验证token有效性
|
try {
|
String token = this.getToken();
|
res = (String) requestMethod.invoke(this.uavClient, this.host + url, token, data);
|
} catch (IllegalAccessException e) {
|
System.out.println("doUavRequest 访问失败");
|
System.out.println(url);
|
log.error("doUavRequest 访问失败" + e.getMessage());
|
} catch (InvocationTargetException e) {
|
System.out.println("doUavRequest 执行失败");
|
System.out.println(url);
|
log.error("doUavRequest 执行失败" + e.getMessage());
|
e.printStackTrace();
|
}
|
|
return res;
|
}
|
|
public Map getUavUser() {
|
return redisCache.getCacheMap("uav:uavUser");
|
}
|
|
public String getToken() {
|
//获取uav用户信息
|
Map uavUser = redisCache.getCacheMap("uav:uavUser");
|
String token = (String) uavUser.get("access_token");
|
//验证token有效性
|
try {
|
String res = uavClient.GET(this.host+"manage/api/v1/devices", token, "{}");
|
res+="";
|
//System.out.println(res);
|
|
//token赋值
|
this.token = token;
|
this.workspaceId = (String) uavUser.get("workspace_id");
|
} catch (ForestNetworkException fe) {
|
if (fe.getStatusCode() == 401) {//token失效,重新登录
|
this.login();
|
//再次获取token
|
uavUser = redisCache.getCacheMap("uav:uavUser");
|
token = (String) uavUser.get("access_token");
|
//token赋值
|
this.token = token;
|
this.workspaceId = (String) uavUser.get("workspace_id");
|
return token;
|
}
|
}
|
return token;
|
}
|
|
public void login() {
|
|
getUavConfig();
|
log.debug("登录无人机外部接口");
|
String codedPassword = this.Encrypt(password, salt);
|
String body = "{\"username\":\"" + username + "\",\"password\":\"" + codedPassword + "\"}";
|
log.debug("body:" + body);
|
try {
|
//uavClient.GET("logout", null, "{}");
|
String res = uavClient.POST(this.host+"login", null, body);
|
Map resMap = om.readValue(res, Map.class);
|
if (resMap != null&& resMap.get("data") instanceof Map) {
|
redisCache.setCacheMap("uav:uavUser", (Map) resMap.get("data"));
|
}
|
} catch (ForestRuntimeException e) {
|
log.error("无人机连接超时" + e.getMessage());
|
} catch (JsonMappingException e) {
|
} catch (JsonProcessingException e) {
|
} catch (IOException e) {
|
}
|
}
|
|
public void createWebsocketCients(){
|
/*String ip = this.host.replace("http://", "");
|
if(this.UAVWebsocketClientMap.get("status") != null && this.UAVWebsocketClientMap.get("control") != null){
|
//无人机状态灭活
|
UAVWebsocketClient uavStatusWebsocketClient = this.UAVWebsocketClientMap.get("status");
|
uavStatusWebsocketClient.getHeartBeatTimer().cancel();
|
uavStatusWebsocketClient.close();
|
//无人机控制灭活
|
UAVWebsocketClient uavControlWebsocketClient = this.UAVWebsocketClientMap.get("control");
|
uavControlWebsocketClient.getHeartBeatTimer().cancel();
|
uavControlWebsocketClient.close();
|
|
this.UAVWebsocketClientMap.remove("status");
|
this.UAVWebsocketClientMap.remove("control");
|
}
|
|
String uavStatusWsURL = "ws://" + ip + "api/v1/ws?x-auth-token=" + token;
|
System.out.println(uavStatusWsURL);
|
UAVWebsocketClient uavStatusWebsocketClient;
|
try {
|
uavStatusWebsocketClient = new UAVWebsocketClient(new URI(uavStatusWsURL));
|
uavStatusWebsocketClient.connect();
|
System.out.println("连接中。。。");
|
try {
|
Thread.sleep(1000);
|
} catch (InterruptedException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
if(!uavStatusWebsocketClient.getReadyState().equals(WebSocket.READYSTATE.OPEN)){
|
uavStatusWebsocketClient.close();
|
return;
|
}
|
Date date = new Date();
|
Timer heartBeatTimer = new Timer();
|
TimerTask heartBeatTask = new TimerTask(){
|
public void run(){
|
Map<String,Object> para = new HashMap();
|
para.put("biz_code", "user_cmd");
|
para.put("version", "1.0");
|
Date date = new Date();
|
para.put("time_stamp", String.valueOf(date.getTime()));
|
Map<String,String> payload = new HashMap();
|
payload.put("timeStamp", String.valueOf(date.getTime()));
|
Map<String,Object> data = new HashMap();
|
data.put("dataHead", "0x7479");
|
data.put("cmdCode", "0x02");
|
data.put("payload", payload);
|
para.put("data", data);
|
try{
|
uavStatusWebsocketClient.send(JSON.toJSONString(para));
|
System.out.println("无人机状态心跳发送");
|
}catch(Exception e){
|
e.printStackTrace();
|
System.out.println(uavStatusWebsocketClient.getServerUri());
|
}
|
}
|
};
|
uavStatusWebsocketClient.setHeartBeatTimer(heartBeatTimer);
|
heartBeatTimer.scheduleAtFixedRate(heartBeatTask,date,10*1000);
|
this.UAVWebsocketClientMap.put("status", uavStatusWebsocketClient);
|
} catch (NumberFormatException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
} catch (URISyntaxException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
|
String uavControlWsURL = "ws://" + ip + "api/v1/ws/cmd?x-auth-token=" + token;
|
System.out.println(uavControlWsURL);
|
UAVWebsocketClient uavControlWebsocketClient;
|
try {
|
uavControlWebsocketClient = new UAVWebsocketClient(new URI(uavControlWsURL));
|
uavControlWebsocketClient.connect();
|
System.out.println("连接中。。。");
|
try {
|
Thread.sleep(1000);
|
} catch (InterruptedException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
if(!uavControlWebsocketClient.getReadyState().equals(WebSocket.READYSTATE.OPEN)){
|
//无人机状态灭活
|
UAVWebsocketClient uavStatusWebsocketClient0 = this.UAVWebsocketClientMap.get("status");
|
uavStatusWebsocketClient0.getHeartBeatTimer().cancel();
|
uavStatusWebsocketClient0.close();
|
|
uavControlWebsocketClient.close();
|
return;
|
}
|
Date date = new Date();
|
Timer heartBeatTimer = new Timer();
|
TimerTask heartBeatTask = new TimerTask(){
|
public void run(){
|
Map<String,Object> para = new HashMap();
|
para.put("biz_code", "user_cmd");
|
para.put("version", "1.0");
|
Date date = new Date();
|
para.put("time_stamp", String.valueOf(date.getTime()));
|
Map<String,String> payload = new HashMap();
|
payload.put("timeStamp", String.valueOf(date.getTime()));
|
Map<String,Object> data = new HashMap();
|
data.put("dataHead", "0x7479");
|
data.put("cmdCode", "0x02");
|
data.put("payload", payload);
|
para.put("data", data);
|
try{
|
uavControlWebsocketClient.send(JSON.toJSONString(para));
|
System.out.println("无人机控制心跳发送");
|
}catch(Exception e){
|
e.printStackTrace();
|
System.out.println(uavControlWebsocketClient.getServerUri());
|
}
|
}
|
};
|
uavControlWebsocketClient.setHeartBeatTimer(heartBeatTimer);
|
heartBeatTimer.scheduleAtFixedRate(heartBeatTask,date,10*1000);
|
this.UAVWebsocketClientMap.put("control", uavControlWebsocketClient);
|
} catch (NumberFormatException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
} catch (URISyntaxException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}*/
|
String ip = this.host.replace("http://", "");
|
Date date = new Date();
|
Timer heartBeatTimer = new Timer();
|
TimerTask heartBeatTask = new TimerTask(){
|
public void run(){
|
if(token != null){//判断是否为null
|
if(UAVWebsocketClientMap.get("status") != null && UAVWebsocketClientMap.get("control") != null){
|
String oldURL = UAVWebsocketClientMap.get("status").getServerUri().toString();
|
String oldToken = oldURL.split("x-auth-token=")[1];
|
if(!oldToken.equals(token)){//token更新从新创建客户端
|
//原客户端灭活
|
UAVWebsocketClientMap.get("status").close();//无人机状态灭活
|
UAVWebsocketClientMap.get("control").close();//无人机控制灭活
|
UAVWebsocketClientMap.remove("status");
|
UAVWebsocketClientMap.remove("control");
|
|
String uavStatusWsURL = "ws://" + ip + "api/v1/ws?x-auth-token=" + token;
|
UAVWebsocketClient uavStatusWebsocketClient = null;
|
try {
|
uavStatusWebsocketClient = new UAVWebsocketClient(new URI(uavStatusWsURL));
|
uavStatusWebsocketClient.connect();
|
System.out.println("连接中。。。");
|
try {
|
Thread.sleep(1000);
|
} catch (InterruptedException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
if(!uavStatusWebsocketClient.getReadyState().equals(WebSocket.READYSTATE.OPEN)){
|
uavStatusWebsocketClient.close();
|
uavStatusWebsocketClient = null;
|
}
|
} catch (NumberFormatException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
} catch (URISyntaxException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
|
String uavControlWsURL = "ws://" + ip + "api/v1/ws/cmd?x-auth-token=" + token;
|
UAVWebsocketClient uavControlWebsocketClient = null;
|
try {
|
uavControlWebsocketClient = new UAVWebsocketClient(new URI(uavControlWsURL));
|
uavControlWebsocketClient.connect();
|
System.out.println("连接中。。。");
|
try {
|
Thread.sleep(1000);
|
} catch (InterruptedException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
if(!uavControlWebsocketClient.getReadyState().equals(WebSocket.READYSTATE.OPEN)){
|
//无人机状态灭活
|
UAVWebsocketClient uavStatusWebsocketClient0 = UAVWebsocketClientMap.get("status");
|
uavStatusWebsocketClient0.close();
|
|
uavControlWebsocketClient.close();
|
uavStatusWebsocketClient0 = null;
|
uavControlWebsocketClient = null;
|
//return;
|
}
|
} catch (NumberFormatException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
} catch (URISyntaxException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
if(uavStatusWebsocketClient != null || uavControlWebsocketClient != null){
|
UAVWebsocketClientMap.put("status", uavStatusWebsocketClient);
|
UAVWebsocketClientMap.put("control", uavControlWebsocketClient);
|
|
Map<String,Object> para = new HashMap();
|
para.put("biz_code", "user_cmd");
|
para.put("version", "1.0");
|
Date date = new Date();
|
para.put("time_stamp", String.valueOf(date.getTime()));
|
Map<String,String> payload = new HashMap();
|
payload.put("timeStamp", String.valueOf(date.getTime()));
|
Map<String,Object> data = new HashMap();
|
data.put("dataHead", "0x7479");
|
data.put("cmdCode", "0x02");
|
data.put("payload", payload);
|
para.put("data", data);
|
try{
|
uavStatusWebsocketClient.send(JSON.toJSONString(para));
|
uavControlWebsocketClient.send(JSON.toJSONString(para));
|
//System.out.println("无人机心跳发送");
|
}catch(Exception e){
|
e.printStackTrace();
|
System.out.println(uavStatusWebsocketClient.getServerUri());
|
System.out.println(uavControlWebsocketClient.getServerUri());
|
//无人机状态灭活
|
uavStatusWebsocketClient = UAVWebsocketClientMap.get("status");
|
uavStatusWebsocketClient.close();
|
//无人机控制灭活
|
uavControlWebsocketClient = UAVWebsocketClientMap.get("control");
|
uavControlWebsocketClient.close();
|
|
UAVWebsocketClientMap.remove("status");
|
UAVWebsocketClientMap.remove("control");
|
}
|
}
|
}else{
|
Map<String,Object> para = new HashMap();
|
para.put("biz_code", "user_cmd");
|
para.put("version", "1.0");
|
Date date = new Date();
|
para.put("time_stamp", String.valueOf(date.getTime()));
|
Map<String,String> payload = new HashMap();
|
payload.put("timeStamp", String.valueOf(date.getTime()));
|
Map<String,Object> data = new HashMap();
|
data.put("dataHead", "0x7479");
|
data.put("cmdCode", "0x02");
|
data.put("payload", payload);
|
para.put("data", data);
|
UAVWebsocketClient uavStatusWebsocketClient = UAVWebsocketClientMap.get("status");
|
UAVWebsocketClient uavControlWebsocketClient = UAVWebsocketClientMap.get("control");
|
try{
|
uavStatusWebsocketClient.send(JSON.toJSONString(para));
|
uavControlWebsocketClient.send(JSON.toJSONString(para));
|
//System.out.println("无人机心跳发送");
|
}catch(Exception e){
|
e.printStackTrace();
|
System.out.println(uavStatusWebsocketClient.getServerUri());
|
System.out.println(uavControlWebsocketClient.getServerUri());
|
//无人机状态灭活
|
uavStatusWebsocketClient = UAVWebsocketClientMap.get("status");
|
uavStatusWebsocketClient.close();
|
//无人机控制灭活
|
uavControlWebsocketClient = UAVWebsocketClientMap.get("control");
|
uavControlWebsocketClient.close();
|
|
UAVWebsocketClientMap.remove("status");
|
UAVWebsocketClientMap.remove("control");
|
}
|
}
|
}else{
|
String uavStatusWsURL = "ws://" + ip + "api/v1/ws?x-auth-token=" + token;
|
System.out.println(uavStatusWsURL);
|
UAVWebsocketClient uavStatusWebsocketClient = null;
|
try {
|
uavStatusWebsocketClient = new UAVWebsocketClient(new URI(uavStatusWsURL));
|
uavStatusWebsocketClient.connect();
|
System.out.println("连接中。。。");
|
try {
|
Thread.sleep(1000);
|
} catch (InterruptedException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
if(!uavStatusWebsocketClient.getReadyState().equals(WebSocket.READYSTATE.OPEN)){
|
uavStatusWebsocketClient.close();
|
uavStatusWebsocketClient = null;
|
}
|
} catch (NumberFormatException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
} catch (URISyntaxException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
|
String uavControlWsURL = "ws://" + ip + "api/v1/ws/cmd?x-auth-token=" + token;
|
System.out.println(uavControlWsURL);
|
UAVWebsocketClient uavControlWebsocketClient = null;
|
try {
|
uavControlWebsocketClient = new UAVWebsocketClient(new URI(uavControlWsURL));
|
uavControlWebsocketClient.connect();
|
System.out.println("连接中。。。");
|
try {
|
Thread.sleep(1000);
|
} catch (InterruptedException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
if(!uavControlWebsocketClient.getReadyState().equals(WebSocket.READYSTATE.OPEN)){
|
//无人机状态灭活
|
UAVWebsocketClient uavStatusWebsocketClient0 = UAVWebsocketClientMap.get("status");
|
uavStatusWebsocketClient0.close();
|
|
uavControlWebsocketClient.close();
|
uavStatusWebsocketClient0 = null;
|
uavControlWebsocketClient = null;
|
}
|
} catch (NumberFormatException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
} catch (URISyntaxException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
if(uavStatusWebsocketClient != null || uavControlWebsocketClient != null){
|
UAVWebsocketClientMap.put("status", uavStatusWebsocketClient);
|
UAVWebsocketClientMap.put("control", uavControlWebsocketClient);
|
|
Map<String,Object> para = new HashMap();
|
para.put("biz_code", "user_cmd");
|
para.put("version", "1.0");
|
Date date = new Date();
|
para.put("time_stamp", String.valueOf(date.getTime()));
|
Map<String,String> payload = new HashMap();
|
payload.put("timeStamp", String.valueOf(date.getTime()));
|
Map<String,Object> data = new HashMap();
|
data.put("dataHead", "0x7479");
|
data.put("cmdCode", "0x02");
|
data.put("payload", payload);
|
para.put("data", data);
|
try{
|
uavStatusWebsocketClient.send(JSON.toJSONString(para));
|
uavControlWebsocketClient.send(JSON.toJSONString(para));
|
//System.out.println("无人机心跳发送");
|
}catch(Exception e){
|
e.printStackTrace();
|
System.out.println(uavStatusWebsocketClient.getServerUri());
|
System.out.println(uavControlWebsocketClient.getServerUri());
|
//无人机状态灭活
|
uavStatusWebsocketClient = UAVWebsocketClientMap.get("status");
|
uavStatusWebsocketClient.close();
|
//无人机控制灭活
|
uavControlWebsocketClient = UAVWebsocketClientMap.get("control");
|
uavControlWebsocketClient.close();
|
|
UAVWebsocketClientMap.remove("status");
|
UAVWebsocketClientMap.remove("control");
|
}
|
}
|
}
|
}
|
}
|
};
|
heartBeatTimer.scheduleAtFixedRate(heartBeatTask,date,10*1000);
|
}
|
|
|
public String Encrypt(String sSrc, String sKey) {
|
if (sKey == null) {
|
return null;
|
}
|
// 判断Key是否为16位
|
if (sKey.length() != 16) {
|
return null;
|
}
|
byte[] encrypted = null;
|
try {
|
byte[] raw = sKey.getBytes("utf-8");
|
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
|
Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding");//"算法/模式/补码方式"
|
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
|
encrypted = cipher.doFinal(sSrc.getBytes("utf-8"));
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return new Base64().encodeToString(encrypted);//此处使用BASE64做转码功能,同时能起到2次加密的作用。
|
}
|
|
public Object checkPointValid(String url, Map<String,Map<String,Object>> data) {
|
String token = this.getToken();
|
url = this.host + url;
|
Map<String,Object> resultMap = checkPointValid(url,token, data);
|
return resultMap;
|
}
|
|
public Map<String,Object> checkPointValid(String url,String access_token,Map<String,Map<String,Object>> map){
|
MediaType mediaType = MediaType.parse("application/json; charset=utf-8");
|
OkHttpClient okHttpClient = new OkHttpClient();
|
|
RequestBody body = RequestBody.create(mediaType, JSON.toJSONString(map));
|
|
Request request = new Request.Builder().url(url).post(body).addHeader("x-auth-token",access_token).build();
|
|
Response response = null;
|
try {
|
response = okHttpClient.newCall(request).execute();
|
} catch (IOException e1) {
|
// TODO Auto-generated catch block
|
e1.printStackTrace();
|
}
|
|
ResponseBody responseBody = response.body();
|
|
try {
|
String message = responseBody.string();// 响应体
|
Map<String,Object> map0 = (Map<String, Object>) JSON.parse(message);
|
return map0;
|
} catch (IOException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
return new HashMap();
|
}
|
}
|
|
public Object checkLineValid(String url, Map<String,List<Map<String,String>>> data) {
|
String token = this.getToken();
|
url = this.host + url;
|
Map<String,Object> resultMap = checkLineValid(url,token, data);
|
return resultMap;
|
}
|
|
public Map<String,Object> checkLineValid(String url,String access_token,Map<String,List<Map<String,String>>> map){
|
MediaType mediaType = MediaType.parse("application/json; charset=utf-8");
|
OkHttpClient okHttpClient = new OkHttpClient();
|
|
RequestBody body = RequestBody.create(mediaType, JSON.toJSONString(map));
|
|
Request request = new Request.Builder().url(url).post(body).addHeader("x-auth-token",access_token).build();
|
|
Response response = null;
|
try {
|
response = okHttpClient.newCall(request).execute();
|
} catch (IOException e1) {
|
// TODO Auto-generated catch block
|
e1.printStackTrace();
|
}
|
|
ResponseBody responseBody = response.body();
|
|
try {
|
String message = responseBody.string();// 响应体
|
Map<String,Object> map0 = (Map<String, Object>) JSON.parse(message);
|
return map0;
|
} catch (IOException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
return new HashMap();
|
}
|
}
|
|
public String getWorkspaceId(){
|
String token = this.getToken();
|
return this.workspaceId;
|
}
|
|
public Object addWaylinesPlanning(String url, Map<String,Object> data) {
|
String token = this.getToken();
|
url = this.host + url;
|
Map<String,Object> resultMap = addWaylinesPlanning(url,token, data);
|
return resultMap;
|
}
|
|
public Map<String,Object> addWaylinesPlanning(String url,String access_token,Map<String,Object> map){
|
MediaType mediaType = MediaType.parse("application/json; charset=utf-8");
|
OkHttpClient okHttpClient = new OkHttpClient();
|
|
RequestBody body = RequestBody.create(mediaType, JSON.toJSONString(map));
|
|
Request request = new Request.Builder().url(url).post(body).addHeader("x-auth-token",access_token).build();
|
|
Response response = null;
|
try {
|
response = okHttpClient.newCall(request).execute();
|
} catch (IOException e1) {
|
// TODO Auto-generated catch block
|
e1.printStackTrace();
|
}
|
|
ResponseBody responseBody = response.body();
|
|
try {
|
String message = responseBody.string();// 响应体
|
Map<String,Object> map0 = (Map<String, Object>) JSON.parse(message);
|
return map0;
|
} catch (IOException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
return new HashMap();
|
}
|
}
|
|
public Object deleteWaylinesPlanning(String url, Map<String,String> data) {
|
String token = this.getToken();
|
String waylineId = data.get("waylineId");
|
url = this.host + url + waylineId;
|
Map<String,Object> resultMap = deleteWaylinesPlanning(url,token);
|
return resultMap;
|
}
|
|
public static Map<String,Object> deleteWaylinesPlanning(String url,String access_token){
|
OkHttpClient okHttpClient = new OkHttpClient();
|
|
Request request = new Request.Builder().url(url).delete().addHeader("x-auth-token",access_token).build();
|
|
Response response = null;
|
try {
|
response = okHttpClient.newCall(request).execute();
|
} catch (IOException e1) {
|
// TODO Auto-generated catch block
|
e1.printStackTrace();
|
}
|
|
ResponseBody responseBody = response.body();
|
|
try {
|
String message = responseBody.string();// 响应体
|
Map<String,Object> map0 = (Map<String, Object>) JSON.parse(message);
|
return map0;
|
} catch (IOException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
return new HashMap();
|
}
|
}
|
|
public Object updateWaylinesPlanning(String url, Map<String,Object> data) {
|
String token = this.getToken();
|
url = this.host + url;
|
Map<String,Object> resultMap = updateWaylinesPlanning(url,token, data);
|
return resultMap;
|
}
|
|
public Map<String,Object> updateWaylinesPlanning(String url,String access_token,Map<String,Object> map){
|
MediaType mediaType = MediaType.parse("application/json; charset=utf-8");
|
OkHttpClient okHttpClient = new OkHttpClient();
|
|
RequestBody body = RequestBody.create(mediaType, JSON.toJSONString(map));
|
|
Request request = new Request.Builder().url(url).post(body).addHeader("x-auth-token",access_token).build();
|
|
Response response = null;
|
try {
|
response = okHttpClient.newCall(request).execute();
|
} catch (IOException e1) {
|
// TODO Auto-generated catch block
|
e1.printStackTrace();
|
}
|
|
ResponseBody responseBody = response.body();
|
|
try {
|
String message = responseBody.string();// 响应体
|
Map<String,Object> map0 = (Map<String, Object>) JSON.parse(message);
|
return map0;
|
} catch (IOException e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
return new HashMap();
|
}
|
}
|
}
|