From 8cb8a874db01acd1113cfeb5c2c5bf7e9555ff65 Mon Sep 17 00:00:00 2001
From: aijinhui <aijinhui>
Date: 星期六, 21 十月 2023 15:26:42 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ard-work/src/main/java/com/ruoyi/device/camera/service/impl/CameraSdkServiceImpl.java | 230 +++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 158 insertions(+), 72 deletions(-)
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 97591be..88678a3 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
@@ -1,11 +1,16 @@
package com.ruoyi.device.camera.service.impl;
+import com.ruoyi.common.annotation.SdkOperate;
import com.ruoyi.common.constant.CacheConstants;
import com.ruoyi.common.core.redis.RedisCache;
+import com.ruoyi.common.utils.file.FileUtils;
import com.ruoyi.device.camera.domain.ArdCameras;
import com.ruoyi.device.camera.domain.CameraCmd;
+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.dhsdk.lib.NetSDKLib;
+import com.ruoyi.device.dhsdk.module.RealPlayModule;
import com.ruoyi.device.dhsdk.service.IDhClientService;
import com.ruoyi.device.hiksdk.common.GlobalVariable;
import com.ruoyi.device.hiksdk.service.IHikClientService;
@@ -13,10 +18,13 @@
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import static com.ruoyi.device.dhsdk.lib.ToolKits.getErrorCodePrint;
+import static com.ruoyi.device.dhsdk.module.LoginModule.netsdk;
import static com.ruoyi.device.hiksdk.sdk.HCNetSDK.NET_DVR_CHECK_USER_STATUS;
@@ -30,12 +38,14 @@
@Slf4j(topic = "SDK")
public class CameraSdkServiceImpl implements ICameraSdkService {
@Resource
+ private IArdCamerasService ardCamerasService;
+ @Resource
IHikClientService hikClientService;
@Resource
IDhClientService dhClientService;
@Resource
RedisCache redisCache;
-
+ //鍒濆鍖朣DK
@Override
public void initSDK() {
//鍒濆鍖栧姞杞絪dk搴撴枃浠�
@@ -48,20 +58,47 @@
dhClientService.loginAll();//鐧诲綍鍏ㄩ儴澶у崕鐩告満
}
}
+ //鐧诲綍
@Override
- public void syncLogin(ArdCameras cameras) {
-
+ public Boolean login(ArdCameras ardCamera) {
+ boolean result = false;
+ try {
+ if (ardCamera != null) {
+ String factory = ardCamera.getFactory();
+ if (factory.equals("1")) {
+ hikClientService.syncLogin(ardCamera);
+ result=true;
+ } else if (factory.equals("2")) {
+ result = dhClientService.login(ardCamera);
+ }
+ }
+ } catch (Exception ex) {
+ log.error("鐧诲綍寮傚父锛�" + ex.getMessage());
+ return false;
+ }
+ return result;
}
-
- @Override
- public void asyncLogin(ArdCameras cameras) {
-
- }
-
+ //娉ㄩ攢
@Override
public boolean logout(String cameraId) {
- return false;
+ boolean result = false;
+ try {
+ ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+ if (ardCamera != null) {
+ String factory = ardCamera.getFactory();
+ if (factory.equals("1")) {
+ result = hikClientService.logout(cameraId);
+ } else if (factory.equals("2")) {
+ result = dhClientService.logout(cameraId);
+ }
+ }
+ } catch (Exception ex) {
+ log.error("娉ㄩ攢寮傚父锛�" + ex.getMessage());
+ return false;
+ }
+ return result;
}
+
//鍦ㄧ嚎妫�娴�
@Override
public boolean isOnLine(CameraCmd cmd) {
@@ -84,6 +121,7 @@
}
}
//浜戝彴鎺у埗
+ @SdkOperate
@Override
public boolean pTZControl(CameraCmd cmd) {
try {
@@ -116,7 +154,7 @@
if (factory.equals("1")) {
result = hikClientService.setFocusPos(cmd);
} else if (factory.equals("2")) {
-
+ result = dhClientService.setFocusPos(cmd);
}
}
} catch (Exception ex) {
@@ -127,23 +165,23 @@
}
//鑾峰彇鑱氱劍鍊�
@Override
- public Map<String, Object> getFocusPos(CameraCmd cmd) {
- Map<String, Object> map = new HashMap<>();
+ public int getFocusPos(CameraCmd cmd) {
+ int result=0;
try {
String cameraId = cmd.getCameraId();
ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
if (ardCamera != null) {
String factory = ardCamera.getFactory();
if (factory.equals("1")) {
- map = hikClientService.getFocusPos(cmd);
+ result = hikClientService.getFocusPos(cmd);
} else if (factory.equals("2")) {
-
+ result = dhClientService.getFocusPos(cmd);
}
}
} catch (Exception ex) {
log.error("鑾峰彇鑱氱劍鍊煎紓甯革細" + ex.getMessage());
}
- return map;
+ return result;
}
//璁剧疆棰勭疆浣�
@Override
@@ -187,8 +225,8 @@
}
//鑾峰彇鐮佹祦鍘嬬缉鍙傛暟
@Override
- public Map<String, String> getVideoCompressionCfg(CameraCmd cmd) {
- Map<String, String> map = new HashMap<>();
+ public Map<String, Object> getVideoCompressionCfg(CameraCmd cmd) {
+ Map<String, Object> map = new HashMap<>();
try {
String cameraId = cmd.getCameraId();
ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
@@ -197,7 +235,7 @@
if (factory.equals("1")) {
map = hikClientService.getVideoCompressionCfg(cmd);
} else if (factory.equals("2")) {
-
+ map = dhClientService.getVideoCompressionCfg(cmd);
}
}
} catch (Exception ex) {
@@ -217,7 +255,7 @@
if (factory.equals("1")) {
result = hikClientService.controlDefogcfg(cmd);
} else if (factory.equals("2")) {
-
+ //涓嶆敮鎸�
}
}
} catch (Exception ex) {
@@ -237,7 +275,7 @@
if (factory.equals("1")) {
result = hikClientService.controlInfrarecfg(cmd);
} else if (factory.equals("2")) {
-
+ result = dhClientService.controlInfrarecfg(cmd);
}
}
} catch (Exception ex) {
@@ -277,7 +315,7 @@
if (factory.equals("1")) {
result = hikClientService.getFocusMode(cmd);
} else if (factory.equals("2")) {
-
+ result = dhClientService.getFocusMode(cmd);
}
}
} catch (Exception ex) {
@@ -297,7 +335,7 @@
if (factory.equals("1")) {
result = hikClientService.controlPTHeateRpwron(cmd);
} else if (factory.equals("2")) {
-
+ //涓嶆敮鎸�
}
}
} catch (Exception ex) {
@@ -317,7 +355,7 @@
if (factory.equals("1")) {
result = hikClientService.controlCameraDeicing(cmd);
} else if (factory.equals("2")) {
-
+ //涓嶆敮鎸�
}
}
} catch (Exception ex) {
@@ -325,46 +363,7 @@
}
return result;
}
- //鎿嶆帶閿佸畾
- @Override
- public boolean controlLock(CameraCmd cmd) {
- boolean result = false;
- try {
- String cameraId = cmd.getCameraId();
- ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
- if (ardCamera != null) {
- String factory = ardCamera.getFactory();
- if (factory.equals("1")) {
- result = hikClientService.controlLock(cmd);
- } else if (factory.equals("2")) {
- }
- }
- } catch (Exception ex) {
- log.error("鎿嶆帶閿佸畾寮傚父锛�" + ex.getMessage());
- }
- return result;
- }
- //璁剧疆瑙i攣
- @Override
- public boolean controlUnLock(CameraCmd cmd) {
- boolean result = false;
- try {
- String cameraId = cmd.getCameraId();
- ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
- if (ardCamera != null) {
- String factory = ardCamera.getFactory();
- if (factory.equals("1")) {
- result = hikClientService.controlUnLock(cmd);
- } else if (factory.equals("2")) {
-
- }
- }
- } catch (Exception ex) {
- log.error("璁剧疆瑙i攣寮傚父锛�" + ex.getMessage());
- }
- return result;
- }
//鑾峰彇浜戝彴閿佸畾淇℃伅
@Override
public int getPTZLockInfo(CameraCmd cmd) {
@@ -391,17 +390,23 @@
return null;
}
//鎶撳浘
+ @SdkOperate
@Override
public String picCutCate(CameraCmd cmd) {
- String url = "";
+ String url = "";
try {
+ //鑾峰彇鎽勫儚澶碔D
String cameraId = cmd.getCameraId();
+ //浠巖edis涓幏鍙栨憚鍍忓ご淇℃伅
ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
if (ardCamera != null) {
+ //鑾峰彇鎽勫儚澶村伐鍘�
String factory = ardCamera.getFactory();
if (factory.equals("1")) {
+ //璋冪敤hikClientService鐨刾icCutCate鏂规硶
url = hikClientService.picCutCate(cmd);
} else if (factory.equals("2")) {
+ //璋冪敤dhClientService鐨刾icCutCate鏂规硶
url = dhClientService.picCutCate(cmd);
}
}
@@ -451,6 +456,7 @@
return map;
}
//璁剧疆ptz
+ @SdkOperate
@Override
public boolean setPtz(CameraCmd cmd) {
boolean result = false;
@@ -471,6 +477,7 @@
return result;
}
//璁剧疆闆舵柟浣嶈
+ @SdkOperate
@Override
public boolean setZeroPtz(CameraCmd cmd) {
boolean result = false;
@@ -491,6 +498,7 @@
return result;
}
//寮曞鎸囧悜鐩爣
+ @SdkOperate
@Override
public boolean guideTargetPosition(CameraCmd cmd) {
boolean result = false;
@@ -510,6 +518,74 @@
}
return result;
}
+
+ /**
+ * @鎻忚堪 鎿嶆帶閿佸畾
+ * @鍙傛暟 [userId, channelNum]
+ * @杩斿洖鍊� boolean
+ * @鍒涘缓浜� 鍒樿嫃涔�
+ * @鍒涘缓鏃堕棿 2023/1/17 16:36
+ * @淇敼浜哄拰鍏跺畠淇℃伅 0-瑙i攣 1-閿佸畾
+ */
+ @Override
+ @SdkOperate
+ public boolean controlLock(CameraCmd cmd) {
+ String cameraId = cmd.getCameraId();//鐢宠閿佺殑鐩告満
+ ArdCameras ardCameras = ardCamerasService.selectArdCamerasById(cameraId);
+ Date now = new Date();
+ now.setTime(now.getTime() + cmd.getExpired() * 1000);
+ ardCameras.setOperatorExpired(now);//璁剧疆褰撳墠杩囨湡鏃堕棿
+ ardCamerasService.updateArdCameras(ardCameras);
+ return true;
+ }
+
+ /**
+ * @鎻忚堪 鎿嶆帶瑙i攣
+ * @鍙傛暟 [userId, channelNum]
+ * @杩斿洖鍊� boolean
+ * @鍒涘缓浜� 鍒樿嫃涔�
+ * @鍒涘缓鏃堕棿 2023/6/30 15:36
+ * @淇敼浜哄拰鍏跺畠淇℃伅
+ */
+ @Override
+ public boolean controlUnLock(CameraCmd cmd) {
+ String cameraId = cmd.getCameraId();//鐢宠瑙i攣鐨勭浉鏈�
+ String operator = cmd.getOperator();//鐢宠鑰�
+ ArdCameras ardCameras = ardCamerasService.selectArdCamerasById(cameraId);
+ if (ardCameras.getOperatorId().equals(operator)) {
+ //濡傛灉瑙i攣鐩告満鐨勫綋鍓嶇敤鎴锋槸鐢宠鑰咃紝鍒欐竻绌鸿鐩告満鐨勮繃鏈熸椂闂�
+ ardCameras.setOperatorExpired(null);
+ int i = ardCamerasService.updateArdCameras(ardCameras);
+ if (i > 0) {
+ log.debug(cameraId + "--瑙i攣鎴愬姛");
+ }
+ }
+ return true;
+ }
+
+
+ //褰曞儚
+ @SdkOperate
+ @Override
+ public String record(CameraCmd cmd) {
+ String url = "";
+ try {
+ String cameraId = cmd.getCameraId();
+ ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+ if (ardCamera != null) {
+ String factory = ardCamera.getFactory();
+ if (factory.equals("1")) {
+ url = hikClientService.record(cmd);
+ } else if (factory.equals("2")) {
+ url = dhClientService.record(cmd);
+ }
+ }
+ } catch (Exception ex) {
+ log.error("褰曞儚寮傚父锛�" + ex.getMessage());
+ }
+ return url;
+ }
+
//寮�濮嬪綍鍍�
@Override
public boolean recordStart(CameraCmd cmd) {
@@ -552,13 +628,23 @@
}
//鍋滄褰曞儚骞朵笉瀛樺叆minio
@Override
- public void recordStopNotToMinio(CameraCmd cmd) {
-
- }
-
- @Override
- public List<ArdChannel> getCameraChannelList(ArdCameras camera) {
- return null;
+ public boolean recordStopNotToMinio(CameraCmd cmd) {
+ boolean result = false;
+ try {
+ String cameraId = cmd.getCameraId();
+ ArdCameras ardCamera = redisCache.getCacheObject(CacheConstants.CAMERA_LIST_KEY + cameraId);
+ if (ardCamera != null) {
+ String factory = ardCamera.getFactory();
+ if (factory.equals("1")) {
+ result = hikClientService.recordStopNotToMinio(cmd);
+ } else if (factory.equals("2")) {
+ result = dhClientService.recordStopNotToMinio(cmd);
+ }
+ }
+ } catch (Exception ex) {
+ log.error("鍋滄褰曞儚寮傚父锛�" + ex.getMessage());
+ }
+ return result;
}
//鑾峰彇鐩告満鏋惰鍙傛暟
@@ -573,7 +659,7 @@
if (factory.equals("1")) {
map = hikClientService.getGisInfo(cmd);
} else if (factory.equals("2")) {
-
+ map = dhClientService.getGisInfo(cmd);
}
}
} catch (Exception ex) {
--
Gitblit v1.9.3