From 20439bc0fa1ff714ed5f61e711272deebb76e2c9 Mon Sep 17 00:00:00 2001 From: Administrator <1144154118@qq.com> Date: 星期四, 17 八月 2023 16:40:29 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ard-work/src/main/java/com/ruoyi/device/uav/service/UavService.java | 40 +++++++++++++++++++++++++--------------- 1 files changed, 25 insertions(+), 15 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/device/uav/service/UavService.java b/ard-work/src/main/java/com/ruoyi/device/uav/service/UavService.java index 1950bfd..14acb4d 100644 --- a/ard-work/src/main/java/com/ruoyi/device/uav/service/UavService.java +++ b/ard-work/src/main/java/com/ruoyi/device/uav/service/UavService.java @@ -1,10 +1,12 @@ package com.ruoyi.device.uav.service; 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.utils.forest.UavClient; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.codec.binary.Base64; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpMethod; @@ -15,18 +17,21 @@ 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.util.Map; @Service -public class UavService implements IUavService { +@Slf4j(topic = "uav") +public class UavService { public static final String USERNAME = "ardbailu";//鐢ㄦ埛鍚� public static final String PASSWORD = "ardkj12345";//瀵嗙爜 public static final String SALT = "0123456789012345";//鐩� //token 鐧婚檰鍚庢瘡娆¤姹�,鍦╤eader涓惡甯� private String token;//鐧诲綍鎴愬姛杩斿洖鐨則oken + private Map uavUser;//鐧诲綍鐨勭敤鎴蜂俊鎭� private ObjectMapper om = new ObjectMapper(); @Autowired private UavClient uavClient; @@ -36,7 +41,6 @@ this.login(); } - @Override public String doUavRequest(HttpMethod method, String url, String data) { String res = null; Method requestMethod = null; @@ -57,9 +61,9 @@ try {//鍐嶆璋冪敤鎺ュ彛 res = (String) requestMethod.invoke(this.uavClient, url, this.token, data); } catch (IllegalAccessException ex) { - throw new RuntimeException(ex); + ex.printStackTrace(); } catch (InvocationTargetException ex) { - throw new RuntimeException(ex); + ex.printStackTrace(); } } catch (IllegalAccessException e) { throw new RuntimeException(e); @@ -68,35 +72,42 @@ return res; } - @Override + public Map getUavUser() { + if (this.uavUser == null) { + this.login(); + } + return this.uavUser; + } + public void login() { + log.debug("鐧诲綍鏃犱汉鏈哄閮ㄦ帴鍙�"); String codedPassword = this.Encrypt(PASSWORD, SALT); String body = "{\"username\":\"" + USERNAME + "\",\"password\":\"" + codedPassword + "\"}"; try { String res = uavClient.POST("login", null, body); Map resMap = om.readValue(res, Map.class); - Map data = (Map) resMap.get("data"); - if (data != null) { - this.token = (String) data.get("access_token"); + this.uavUser = (Map) resMap.get("data"); + if (this.uavUser != null) { + this.token = (String) this.uavUser.get("access_token"); } - } catch (ForestNetworkException e) { - e.printStackTrace(); + } catch (ForestRuntimeException e) { + log.error("鏃犱汉鏈鸿繛鎺ヨ秴鏃�" + e.getMessage()); } catch (JsonMappingException e) { - throw new RuntimeException(e); + e.printStackTrace(); } catch (JsonProcessingException e) { - throw new RuntimeException(e); + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); } } public String Encrypt(String sSrc, String sKey) { if (sKey == null) { - System.out.print("Key涓虹┖null"); return null; } // 鍒ゆ柇Key鏄惁涓�16浣� if (sKey.length() != 16) { - System.out.print("Key闀垮害涓嶆槸16浣�"); return null; } byte[] encrypted = null; @@ -108,7 +119,6 @@ encrypted = cipher.doFinal(sSrc.getBytes("utf-8")); } catch (Exception e) { e.printStackTrace(); - ; } return new Base64().encodeToString(encrypted);//姝ゅ浣跨敤BASE64鍋氳浆鐮佸姛鑳斤紝鍚屾椂鑳借捣鍒�2娆″姞瀵嗙殑浣滅敤銆� } -- Gitblit v1.9.3