From 7c2578e6a5b451a4c1c129b678b23cdb36c1620f Mon Sep 17 00:00:00 2001
From: zhangjian <zhangjianrock@163.com>
Date: Tue, 11 Jul 2023 11:52:26 +0800
Subject: [PATCH] 无人机转发接口

---
 /dev/null                                                                    |    9 ---
 ard-work/src/main/java/com/ruoyi/device/uav/controller/ArdUavController.java |   92 ++----------------------------
 ard-work/src/main/java/com/ruoyi/utils/forest/UavAuthLifeCircle.java         |   24 --------
 ard-work/src/main/java/com/ruoyi/device/uav/service/UavService.java          |   15 +---
 4 files changed, 11 insertions(+), 129 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/device/uav/controller/ArdUavController.java b/ard-work/src/main/java/com/ruoyi/device/uav/controller/ArdUavController.java
index feb37e3..07d1185 100644
--- a/ard-work/src/main/java/com/ruoyi/device/uav/controller/ArdUavController.java
+++ b/ard-work/src/main/java/com/ruoyi/device/uav/controller/ArdUavController.java
@@ -6,6 +6,7 @@
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.github.pagehelper.util.StringUtil;
 import com.ruoyi.common.core.controller.BaseController;
+import com.ruoyi.device.uav.service.UavService;
 import com.ruoyi.utils.forest.UavClient;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -38,115 +39,34 @@
 @RequestMapping("/device/uav")
 @Api(tags = "无人机外部接口")
 public class ArdUavController extends BaseController {
-    public static final String USERNAME = "ardbailu";//用户名
-    public static final String PASSWORD = "ardkj12345";//密码
-    public static final String SALT = "0123456789012345";//盐
-
-    //token 登陆后每次请求,在header中携带
-    private String token;//登录成功返回的token
-    private ObjectMapper om = new ObjectMapper();
 
     @Autowired
-    private UavClient uavClient;
+    private UavService uavService;
 
     @PostConstruct
     public void created() {
-        this.uavLogin();
+        this.uavService.login();
     }
 
-    public void uavLogin() {
-        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");
-            }
-        } catch (ForestNetworkException e) {
-            e.printStackTrace();
-        } catch (JsonMappingException e) {
-            throw new RuntimeException(e);
-        } catch (JsonProcessingException e) {
-            throw new RuntimeException(e);
-        }
-    }
 
     @GetMapping("/")
     @ApiOperation("无人机get接口")
     public Object get(@RequestParam String url, @RequestParam String data) {
-        return doUavRequest(GET, url, data);
+        return this.uavService.doUavRequest(GET, url, data);
 
     }
 
     @PostMapping("/")
     @ApiOperation("无人机post接口")
     public Object post(@RequestParam String url, @RequestParam String data) {
-        return doUavRequest(POST, url, data);
+        return this.uavService.doUavRequest(POST, url, data);
     }
 
     @DeleteMapping("/")
     @ApiOperation("无人机delete接口")
     public Object delete(@RequestParam String url, @RequestParam String data) {
-        return doUavRequest(DELETE, url, data);
+        return this.uavService.doUavRequest(DELETE, url, data);
     }
 
-    @Nullable
-    private String doUavRequest(HttpMethod method, String url, String data) {
-        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
-        try {
-            res = (String) requestMethod.invoke(this.uavClient, url, this.token, data);
-        } catch (InvocationTargetException e) {
-            ForestNetworkException fe = (ForestNetworkException) e.getCause();
-            if (fe.getStatusCode() == 401) {//token失效,重新登录
-                this.uavLogin();
-            }
-            try {//再次调用接口
-                res = (String) requestMethod.invoke(this.uavClient, url, this.token, data);
-            } catch (IllegalAccessException ex) {
-                throw new RuntimeException(ex);
-            } catch (InvocationTargetException ex) {
-                throw new RuntimeException(ex);
-            }
-        } catch (IllegalAccessException e) {
-            throw new RuntimeException(e);
-        }
-
-        return res;
-    }
-
-
-    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;
-        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次加密的作用。
-    }
 
 }
diff --git a/ard-work/src/main/java/com/ruoyi/device/uav/service/IUavService.java b/ard-work/src/main/java/com/ruoyi/device/uav/service/IUavService.java
deleted file mode 100644
index a9e8893..0000000
--- a/ard-work/src/main/java/com/ruoyi/device/uav/service/IUavService.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package com.ruoyi.device.uav.service;
-
-import org.springframework.http.HttpMethod;
-
-public interface IUavService {
-    String doUavRequest(HttpMethod method, String url, String data);
-
-    void login();
-}
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..026c3bd 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
@@ -20,7 +20,7 @@
 import java.util.Map;
 
 @Service
-public class UavService implements IUavService {
+public class UavService {
     public static final String USERNAME = "ardbailu";//用户名
     public static final String PASSWORD = "ardkj12345";//密码
     public static final String SALT = "0123456789012345";//盐
@@ -36,7 +36,6 @@
         this.login();
     }
 
-    @Override
     public String doUavRequest(HttpMethod method, String url, String data) {
         String res = null;
         Method requestMethod = null;
@@ -57,9 +56,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,7 +67,6 @@
         return res;
     }
 
-    @Override
     public void login() {
         String codedPassword = this.Encrypt(PASSWORD, SALT);
         String body = "{\"username\":\"" + USERNAME + "\",\"password\":\"" + codedPassword + "\"}";
@@ -82,21 +80,19 @@
         } catch (ForestNetworkException e) {
             e.printStackTrace();
         } catch (JsonMappingException e) {
-            throw new RuntimeException(e);
+            e.printStackTrace();
         } catch (JsonProcessingException e) {
-            throw new RuntimeException(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 +104,6 @@
             encrypted = cipher.doFinal(sSrc.getBytes("utf-8"));
         } catch (Exception e) {
             e.printStackTrace();
-            ;
         }
         return new Base64().encodeToString(encrypted);//此处使用BASE64做转码功能,同时能起到2次加密的作用。
     }
diff --git a/ard-work/src/main/java/com/ruoyi/utils/forest/UavAuthLifeCircle.java b/ard-work/src/main/java/com/ruoyi/utils/forest/UavAuthLifeCircle.java
index 83aea24..f010584 100644
--- a/ard-work/src/main/java/com/ruoyi/utils/forest/UavAuthLifeCircle.java
+++ b/ard-work/src/main/java/com/ruoyi/utils/forest/UavAuthLifeCircle.java
@@ -7,25 +7,6 @@
 public class UavAuthLifeCircle implements MethodAnnotationLifeCycle<UavAuth, Object> {
 
 
-    /**
-     * 当方法调用时调用此方法,此时还没有执行请求发送
-     * 次方法可以获得请求对应的方法调用信息,以及动态传入的方法调用参数列表
-     */
-    @Override
-    public void onInvokeMethod(ForestRequest request, ForestMethod method, Object[] args) {
-
-        System.out.println("!!!!!onInvokeMethod!!!!!! '" + method.getMethodName() + "' Arguments>>>>>>>>>: ");
-    /*    for (Object arg :
-                args) {
-            System.out.println(arg);
-        }
-        String token = (String) args[1];
-        if (token != null) {
-            request.addHeader("x-auth-token", token);
-        }*/
-
-        System.out.println("=================");
-    }
 
     /**
      * 发送请求前执行此方法
@@ -33,10 +14,6 @@
     @Override
     public boolean beforeExecute(ForestRequest request) {
         String token = (String) getAttribute(request, "token");
-        System.out.println("!!!!beforeExecute!!!!");
-        System.out.println("request.getMethod().getMethodName():" + request.getMethod().getMethodName());
-        System.out.println("  token:" + token);
-        System.out.println("=================");
         request.addHeader("x-auth-token", token);
         return true;
     }
@@ -47,6 +24,5 @@
 
     @Override
     public void onMethodInitialized(ForestMethod forestMethod, UavAuth uavAuth) {
-        System.out.println("Method '" + forestMethod.getMethodName());
     }
 }

--
Gitblit v1.9.3