From c33a9e7923e24b3fd8bad1a9e2cd2d1cf385105b Mon Sep 17 00:00:00 2001
From: ‘liusuyi’ <1951119284@qq.com>
Date: 星期二, 02 四月 2024 08:54:28 +0800
Subject: [PATCH] 修复相机密码脱敏导致的bug

---
 ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java |    7 +++++--
 ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SyncTask.java                      |   23 ++++++++++-------------
 2 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java b/ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java
index 9eb2008..4aa2d0c 100644
--- a/ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java
+++ b/ard-work/src/main/java/com/ruoyi/device/camera/controller/ArdCamerasController.java
@@ -6,6 +6,7 @@
 import com.ruoyi.alarmpoints.well.domain.ArdAlarmpointsWell;
 import com.ruoyi.common.constant.CameraConstants;
 import com.ruoyi.common.utils.SecurityUtils;
+import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.device.camera.domain.ArdCameras;
 import com.ruoyi.device.camera.domain.CameraCmd;
 import com.ruoyi.device.camera.domain.DeptAndCamerasDto;
@@ -130,8 +131,10 @@
         }
         int i = ardCamerasService.updateArdCameras(camera);
         if (i > 0) {
-            cameraSdkService.logout(camera.getId());
-            cameraSdkService.login(camera);
+            if(StringUtils.isNotNull(camera.getPassword())) {
+                cameraSdkService.logout(camera.getId());
+                cameraSdkService.login(camera);
+            }
         }
         return toAjax(i);
     }
diff --git a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SyncTask.java b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SyncTask.java
index 3ca2b61..ea6535c 100644
--- a/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SyncTask.java
+++ b/ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/SyncTask.java
@@ -1,9 +1,12 @@
 package com.ruoyi.quartz.task;
 
 
+import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.core.domain.entity.SysUser;
 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.factory.CameraSDKFactory;
 import com.ruoyi.device.camera.service.IArdCamerasService;
 import com.ruoyi.media.domain.Vtdu;
 import com.ruoyi.media.service.IMediaService;
@@ -14,6 +17,7 @@
 import com.ruoyi.utils.sdk.hiksdk.service.impl.HikvisionSDK;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Component;
+
 import javax.annotation.Resource;
 import java.util.List;
 
@@ -33,14 +37,11 @@
     @Resource
     IArdCamerasService iArdCamerasService;
     @Resource
-    HikvisionSDK hikClientService;
-    @Resource
-    DahuaSDK dhClientService;
-    @Resource
     IVtduService vtduService;
     @Resource
     IMediaService mediaService;
-
+    @Resource
+    private CameraSDKFactory cameraSDKFactory;
     /**
      * 鍚屾鐩告満鍦ㄧ嚎鐘舵��
      * 鍒樿嫃涔�
@@ -48,19 +49,15 @@
      */
     public void cameraState() {
         try {
-           ArdCameras ardCamera = new ArdCameras();
+            ArdCameras ardCamera = new ArdCameras();
             //璋冪敤鏌ヨ鏂规硶
             List<ArdCameras> ardCameras = iArdCamerasService.selectArdCamerasListNoDataScope(ardCamera);
             for (ArdCameras camera : ardCameras) {
                 CameraCmd cmd = new CameraCmd();
                 cmd.setCameraId(camera.getId());
-                boolean onLineNew = false;
-                // 鍒ゆ柇鏄�1杩樻槸2
-                if (camera.getFactory().equals("1")) {
-                    onLineNew = hikClientService.isOnLine(cmd);
-                } else if (camera.getFactory().equals("2")) {
-                    onLineNew = dhClientService.isOnLine(cmd);
-                }
+                String factory = camera.getFactory();
+                CameraSDK cameraSDK = cameraSDKFactory.createCameraSDK(factory);
+                boolean onLineNew = cameraSDK.isOnLine(cmd);
                 boolean onLineOld = "1".equals(camera.getState());
                 if (onLineNew != onLineOld) {
                     if (onLineNew) {

--
Gitblit v1.9.3