From 9775ffc356e1ed822f7367619ce7a9907cb49bc0 Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: Sat, 13 Jan 2024 14:08:12 +0800
Subject: [PATCH] 融云token获取改为异步 setptz改为大光电用高精度setptz其他用普通setptz

---
 ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java |   10 +++++++++-
 ard-work/src/main/java/com/ruoyi/rongcloud/service/Impl/RongCloudServiceImpl.java     |    6 ++++--
 ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java    |    2 ++
 ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java      |    2 +-
 ard-work/src/main/java/com/ruoyi/device/camera/factory/CameraSDK.java                 |    5 ++++-
 ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java           |    7 ++++++-
 6 files changed, 26 insertions(+), 6 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/factory/CameraSDK.java b/ard-work/src/main/java/com/ruoyi/device/camera/factory/CameraSDK.java
index 9bbcc39..6def333 100644
--- a/ard-work/src/main/java/com/ruoyi/device/camera/factory/CameraSDK.java
+++ b/ard-work/src/main/java/com/ruoyi/device/camera/factory/CameraSDK.java
@@ -76,7 +76,10 @@
     //获取ptz范围
     Map<String, Object> getPtzScope(CameraCmd cmd);
 
-    //设置ptz
+    //设置ptz1(不支持2通道的Z值设置和获取)
+    boolean setPtz1(CameraCmd cmd);
+
+    //设置ptz(高精度ptz设置)
     boolean setPtz(CameraCmd cmd);
 
     //设置零方位角
diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java b/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java
index ef9e57d..55f8e45 100644
--- a/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java
@@ -426,7 +426,15 @@
             if (ardCamera != null) {
                 String factory = ardCamera.getFactory();
                 CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
-                result = cameraSDK.setPtz(cmd);
+                String gdtype = ardCamera.getGdtype();
+                if(gdtype.equals("1")) {
+                    //大光电使用高精度ptz设置
+                    result = cameraSDK.setPtz(cmd);
+                }else
+                {
+                    result = cameraSDK.setPtz1(cmd);
+                }
+
             }
         } catch (Exception ex) {
             log.error("设置ptz异常:" + ex.getMessage());
diff --git a/ard-work/src/main/java/com/ruoyi/rongcloud/service/Impl/RongCloudServiceImpl.java b/ard-work/src/main/java/com/ruoyi/rongcloud/service/Impl/RongCloudServiceImpl.java
index b28a33b..fe2595e 100644
--- a/ard-work/src/main/java/com/ruoyi/rongcloud/service/Impl/RongCloudServiceImpl.java
+++ b/ard-work/src/main/java/com/ruoyi/rongcloud/service/Impl/RongCloudServiceImpl.java
@@ -1,6 +1,7 @@
 package com.ruoyi.rongcloud.service.Impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dtflys.forest.exceptions.ForestRuntimeException;
 import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.redis.RedisCache;
@@ -61,8 +62,9 @@
             Map<String, Object> map = rongCloudClient.getToken(getRongCloudHead(), param);
             token = (String) map.get("token");
             log.debug("用户" + userId + "获取到融云token:" + token);
-        } catch (Exception ex) {
-            log.error("获取token异常:" + ex.getMessage());
+        }catch(ForestRuntimeException ex)
+        {
+            log.error("获取融云token异常:" + ex.getMessage());
         }
         return token;
     }
diff --git a/ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java b/ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java
index 2eb90d2..de60871 100644
--- a/ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java
+++ b/ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java
@@ -426,6 +426,11 @@
         return null;
     }
 
+    @Override
+    public boolean setPtz1(CameraCmd cmd) {
+        return false;
+    }
+
     /**
      * @描述 设置ptz信息
      * @参数 [userId, channelNum]
@@ -1083,4 +1088,4 @@
         }
     }
 
-}
\ No newline at end of file
+}
diff --git a/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java b/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java
index 55f7de1..ff42951 100644
--- a/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java
+++ b/ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java
@@ -988,7 +988,7 @@
      * @创建时间 2023/1/17 16:36
      * @修改人和其它信息 注意俯仰角度负值需要加上360得到的正值进行设置
      */
-
+    @Override
     public boolean setPtz1(CameraCmd cmd) {
         String cameraId = cmd.getCameraId();
         Integer channelNum = cmd.getChanNo();
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
index 7e23657..aa97e37 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/web/service/SysLoginService.java
@@ -4,6 +4,7 @@
 import com.ruoyi.rongcloud.service.RongCloudService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.scheduling.annotation.Async;
 import org.springframework.security.authentication.AuthenticationManager;
 import org.springframework.security.authentication.BadCredentialsException;
 import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
@@ -151,6 +152,7 @@
      *
      * @param loginUser 登录用户
      */
+    @Async
     public String getRongCloudToken(LoginUser loginUser) {
         try {
             String userId = loginUser.getUserId();

--
Gitblit v1.9.3