From 38f29e38fcc668171dc05c53d40a36b895c86102 Mon Sep 17 00:00:00 2001
From: liusuyi <1951119284@qq.com>
Date: 星期四, 10 十月 2024 13:34:28 +0800
Subject: [PATCH] init

---
 ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java |   45 +++++++++++++++++++++++++++------------------
 1 files changed, 27 insertions(+), 18 deletions(-)

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 be1a771..bb92799 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
@@ -7,45 +7,39 @@
 import com.ruoyi.common.config.ARDConfig;
 import com.ruoyi.common.constant.Constants;
 import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.file.FileUtils;
 import com.ruoyi.common.utils.file.MimeTypeUtils;
-import com.ruoyi.common.utils.spring.SpringUtils;
 import com.ruoyi.common.utils.uuid.IdUtils;
-import com.ruoyi.device.camera.factory.CameraSDK;
 import com.ruoyi.device.camera.domain.ArdCameras;
 import com.ruoyi.device.camera.domain.CameraCmd;
+import com.ruoyi.device.camera.factory.CameraSDK;
 import com.ruoyi.device.camera.service.IArdCamerasService;
 import com.ruoyi.device.camera.service.ICameraSdkService;
 import com.ruoyi.device.channel.domain.ArdChannel;
 import com.ruoyi.device.channel.service.IArdChannelService;
-import com.ruoyi.media.domain.Vtdu;
 import com.ruoyi.media.service.IVtduService;
 import com.ruoyi.utils.gis.GisUtil;
 import com.ruoyi.utils.minio.MinioUtil;
 import com.ruoyi.utils.sdk.common.GlobalVariable;
-import com.ruoyi.utils.sdk.common.SdkErrorCodeEnum;
 import com.ruoyi.utils.sdk.dhsdk.common.ErrorCode;
 import com.ruoyi.utils.sdk.dhsdk.lib.NetSDKLib;
-import com.ruoyi.utils.sdk.dhsdk.lib.ToolKits;
 import com.ruoyi.utils.sdk.dhsdk.lib.enumeration.EM_NEW_CONFIG;
 import com.ruoyi.utils.sdk.dhsdk.lib.enumeration.NET_EM_CFG_OPERATE_TYPE;
 import com.ruoyi.utils.sdk.dhsdk.lib.structure.CFG_INFRARED_INFO;
 import com.ruoyi.utils.sdk.dhsdk.lib.structure.CFG_VIDEO_IN_FOCUS;
 import com.ruoyi.utils.sdk.dhsdk.lib.structure.DH_OUT_PTZ_VIEW_RANGE_STATUS;
 import com.ruoyi.utils.sdk.dhsdk.module.*;
-import com.sun.jna.Native;
 import com.sun.jna.Pointer;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.context.ApplicationEventPublisher;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 
+import javax.annotation.PostConstruct;
 import javax.annotation.Resource;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServletResponse;
 import java.io.*;
-import java.nio.ByteBuffer;
 import java.nio.file.Files;
 import java.nio.file.Paths;
 import java.text.DecimalFormat;
@@ -53,7 +47,6 @@
 import java.util.concurrent.PriorityBlockingQueue;
 
 import static com.ruoyi.utils.sdk.dhsdk.lib.NetSDKLib.*;
-import static com.ruoyi.utils.sdk.dhsdk.lib.NetSDKLib.NET_DEVSTATE_PTZ_VIEW_RANGE;
 import static com.ruoyi.utils.sdk.dhsdk.lib.NetSDKLib.NET_PTZ_ControlType.NET_PTZ_POINT_MOVE_CONTROL;
 import static com.ruoyi.utils.sdk.dhsdk.lib.NetSDKLib.NET_PTZ_ControlType.NET_PTZ_POINT_SET_CONTROL;
 import static com.ruoyi.utils.sdk.dhsdk.lib.ToolKits.getErrorCodePrint;
@@ -88,6 +81,11 @@
     // 缃戠粶杩炴帴鎭㈠
     private static HaveReConnect haveReConnect = new HaveReConnect();
 
+    @PostConstruct
+    public void initSdk() {
+        log.info("鍒濆鍖栧ぇ鍗巗dk");
+        LoginModule.init(disConnect, haveReConnect);
+    }
 
     /**
      * 鐧诲綍
@@ -99,7 +97,6 @@
     @Override
     public AjaxResult login(ArdCameras camera) {
         try {
-            LoginModule.init(disConnect, haveReConnect);
             NetSDKLib.NET_DEVICEINFO_Ex m_stDeviceInfo = new NetSDKLib.NET_DEVICEINFO_Ex();
             NetSDKLib.LLong loginId = LoginModule.login(camera.getIp(), camera.getPort(), camera.getUsername(), camera.getPassword(), m_stDeviceInfo);
             if (loginId.longValue() <= 0) {
@@ -109,7 +106,7 @@
                 ardCamerasService.updateArdCameras(camera);
                 //鍒犻櫎绠$悊閫氶亾
                 ardChannelService.deleteArdChannelByDeviceId(camera.getId());
-                log.error("璁惧[" + camera.getIp() + ":" + camera.getPort() + "]鐧诲綍澶辫触:" + getErrorCodePrint());
+                log.warn("璁惧[" + camera.getIp() + ":" + camera.getPort() + "]鐧诲綍澶辫触:" + getErrorCodePrint());
                 return AjaxResult.warn(ErrorCode.getErrorCode(LoginModule.netsdk.CLIENT_GetLastError()));
             }
             log.debug("璁惧[" + camera.getIp() + ":" + camera.getPort() + "]鐧诲綍鎴愬姛:" + (int) loginId.longValue());
@@ -132,6 +129,8 @@
             ardCamerasService.updateArdCameras(camera);
             //鍒涘缓寮曞闃熷垪
             createGuideQueue(camera);
+            //鍔犲叆宸茬櫥褰曡澶囬泦鍚�
+            GlobalVariable.loginedSet.add(camera);
             return AjaxResult.success("璁惧鐧诲綍鎴愬姛");
         } catch (Exception ex) {
             log.error("璁惧鐧诲綍寮傚父:" + ex.getMessage());
@@ -140,10 +139,9 @@
     }
 
     @Override
-    @Async("loginExecutor")
+    @Async("globalExecutor")
     public AjaxResult asyncLogin(ArdCameras camera) {
         try {
-            LoginModule.init(disConnect, haveReConnect);
             NetSDKLib.NET_DEVICEINFO_Ex m_stDeviceInfo = new NetSDKLib.NET_DEVICEINFO_Ex();
             NetSDKLib.LLong loginId = LoginModule.login(camera.getIp(), camera.getPort(), camera.getUsername(), camera.getPassword(), m_stDeviceInfo);
             if (loginId.longValue() <= 0) {
@@ -153,14 +151,14 @@
                 ardCamerasService.updateArdCameras(camera);
                 //鍒犻櫎绠$悊閫氶亾
                 ardChannelService.deleteArdChannelByDeviceId(camera.getId());
-                log.error("璁惧[" + camera.getIp() + ":" + camera.getPort() + "]鐧诲綍澶辫触:" + getErrorCodePrint());
+                log.warn("璁惧[" + camera.getIp() + ":" + camera.getPort() + "]鐧诲綍澶辫触:" + getErrorCodePrint());
                 return AjaxResult.warn(getErrorCodePrint());
             }
             log.debug("璁惧[" + camera.getIp() + ":" + camera.getPort() + "]鐧诲綍鎴愬姛:" + loginId);
             camera.setState("1");
             camera.setChanNum(m_stDeviceInfo.byChanNum);
             camera.setStartChan(1);
-            camera.setLoginId((Long) loginId.longValue());
+            camera.setLoginId(loginId.longValue());
             ardCamerasService.updateArdCameras(camera);
             GlobalVariable.loginMap.put(camera.getId(), loginId);
 
@@ -178,6 +176,8 @@
             ardCamerasService.updateArdCameras(camera);
             //鍒涘缓寮曞闃熷垪
             createGuideQueue(camera);
+            //鍔犲叆宸茬櫥褰曡澶囬泦鍚�
+            GlobalVariable.loginedSet.add(camera);
             return AjaxResult.success("鐧诲綍鎴愬姛");
         } catch (Exception ex) {
             log.error("鐧诲綍寮傚父:" + ex.getMessage());
@@ -208,7 +208,7 @@
 
     //鑾峰彇閫氶亾
     public List<ArdChannel> getChannels(ArdCameras camera) {
-        if (camera.getLoginId().equals(-1)) {
+        if (camera.getLoginId() < 0) {
             return new ArrayList<>();
         }
         LLong loginId = new LLong(camera.getLoginId());
@@ -635,6 +635,15 @@
                     GlobalVariable.previewMap.remove(cameraId);
                 }
                 log.debug("褰曞儚鍋滄");
+                //瀛樺叆minio
+                String BucketName = "record";
+                String ObjectName = IdUtils.fastSimpleUUID() + ".mp4";
+                FileInputStream stream = new FileInputStream(path);
+                boolean b = MinioUtil.uploadObject(BucketName, ObjectName, stream, stream.available(), "video/MP4");
+                if (b) {
+                    url = MinioUtil.getBucketObjectUrl(BucketName, ObjectName);
+                    log.debug("涓婁紶鏂囦欢鎴愬姛!" + url);
+                }
             }
             return url;
         } catch (Exception ex) {

--
Gitblit v1.9.3