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

---
 ard-work/src/main/java/com/ruoyi/utils/sdk/hiksdk/service/impl/HikvisionSDK.java |  352 +++++++++++++++++++++++++++++++---------------------------
 1 files changed, 188 insertions(+), 164 deletions(-)

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 82a6c1d..1193b37 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
@@ -4,6 +4,7 @@
 import com.ruoyi.alarm.global.domain.GuideTask;
 import com.ruoyi.alarm.global.service.impl.QueueHandler;
 import com.ruoyi.common.annotation.SdkOperate;
+import com.ruoyi.common.core.domain.AjaxResult;
 import com.ruoyi.common.utils.file.FileUtils;
 import com.ruoyi.common.utils.file.MimeTypeUtils;
 import com.ruoyi.common.utils.spring.SpringUtils;
@@ -19,6 +20,7 @@
 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.hiksdk.lib.ExceptionCallBack;
 import com.ruoyi.utils.sdk.hiksdk.lib.HCNetSDK;
 import com.sun.jna.NativeLong;
@@ -71,7 +73,7 @@
      * @淇敼浜哄拰鍏跺畠淇℃伅
      */
     @Override
-    public boolean login(ArdCameras camera) {
+    public AjaxResult login(ArdCameras camera) {
         try {
             // 鍒濆鍖�
             if (!hCNetSDK.NET_DVR_Init()) {
@@ -111,14 +113,15 @@
             //鍚屾鐧诲綍
             int lUserID = hCNetSDK.NET_DVR_Login_V40(m_strLoginInfo, m_strDeviceInfo);
             if (lUserID < 0) {
-                log.debug("Login Failed [ " + camera.getIp() + ":" + camera.getPort() + " ],閿欒鐮侊細" + hCNetSDK.NET_DVR_GetLastError());
+                int errorCode = hCNetSDK.NET_DVR_GetLastError();
                 camera.setChanNum(0);
                 camera.setLoginId(-1);
                 camera.setState("0");
                 //鍒犻櫎绠$悊閫氶亾
                 ardChannelService.deleteArdChannelByDeviceId(camera.getId());
                 ardCamerasService.updateArdCameras(camera);
-                return false;
+                log.error("璁惧[" + camera.getIp() + ":" + camera.getPort() + "]鐧诲綍澶辫触: errorCode:" + errorCode + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode));
+                return AjaxResult.error("鐧诲綍澶辫触: errorCode:" + errorCode + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode));
             }
 
             log.debug("Login Success [ " + camera.getIp() + ":" + camera.getPort() + " ]");
@@ -127,7 +130,6 @@
                 //璁剧疆寮傚父鍥炶皟鍑芥暟(鍙湪鍥炶皟鍑芥暟涓幏鍙栬澶囦笂涓嬬嚎鐘舵�佺瓑)
                 if (!hCNetSDK.NET_DVR_SetExceptionCallBack_V30(0, 0, fExceptionCallBack, null)) {
                     log.debug("Set fExceptionCallBack function fail");
-                    return false;
                 } else {
                     log.debug("Set fExceptionCallBack function successfully!");
                 }
@@ -164,10 +166,11 @@
                 GuidePriorityQueue.cameraQueueMap.put(camera.getId(), priorityQueue);
             }
             ardCamerasService.updateArdCameras(camera);
+            return AjaxResult.success("璁惧鐧诲綍鎴愬姛");
         } catch (Exception ex) {
             log.error("娉ㄥ唽璁惧寮傚父", ex);
+            return AjaxResult.error("娉ㄥ唽璁惧寮傚父" + ex.getMessage());
         }
-        return true;
     }
 
     /**
@@ -180,11 +183,12 @@
      */
     @Override
     @Async("loginExecutor")
-    public void asyncLogin(ArdCameras camera) {
+    public AjaxResult asyncLogin(ArdCameras camera) {
         try {
             // 鍒濆鍖�
             if (!hCNetSDK.NET_DVR_Init()) {
                 log.error("SDK鍒濆鍖栧け璐�");
+                return AjaxResult.error("SDK鍒濆鍖栧け璐�");
             }
             //鎵撳嵃娴峰悍sdk鏃ュ織
             if (Platform.isWindows()) {
@@ -220,16 +224,16 @@
             //鍚屾鐧诲綍
             int lUserID = hCNetSDK.NET_DVR_Login_V40(m_strLoginInfo, m_strDeviceInfo);
             if (lUserID < 0) {
-                log.debug("Login Failed 銆� " + camera.getIp() + ":" + camera.getPort() + " 銆�,Error Code锛�" + hCNetSDK.NET_DVR_GetLastError());
+                int errorCode = hCNetSDK.NET_DVR_GetLastError();
                 camera.setChanNum(0);
                 camera.setLoginId(-1);
                 camera.setState("0");
                 //鍒犻櫎绠$悊閫氶亾
                 ardChannelService.deleteArdChannelByDeviceId(camera.getId());
                 ardCamerasService.updateArdCameras(camera);
-                return;
+                log.error("璁惧[" + camera.getIp() + ":" + camera.getPort() + "]鐧诲綍澶辫触: errorCode:" + errorCode + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode));
+                return AjaxResult.error("璁惧鐧诲綍澶辫触: errorCode:" + errorCode + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode));
             }
-
             log.debug("Login Success 銆� " + camera.getIp() + ":" + camera.getPort() + " 銆�");
             synchronized (_lock) {
                 if (fExceptionCallBack == null) {
@@ -237,7 +241,6 @@
                     //璁剧疆寮傚父鍥炶皟鍑芥暟(鍙湪鍥炶皟鍑芥暟涓幏鍙栬澶囦笂涓嬬嚎鐘舵�佺瓑)
                     if (!hCNetSDK.NET_DVR_SetExceptionCallBack_V30(0, 0, fExceptionCallBack, null)) {
                         log.debug("Set fExceptionCallBack function fail");
-                        return;
                     } else {
                         log.debug("Set fExceptionCallBack function successfully!");
                     }
@@ -272,8 +275,10 @@
             addVtdu(camera);
             //鍒涘缓寮曞闃熷垪
             createGuideQueue(camera);
+            return AjaxResult.success("璁惧鐧诲綍鎴愬姛");
         } catch (Exception ex) {
             log.error("娉ㄥ唽璁惧寮傚父", ex);
+            return AjaxResult.error("娉ㄥ唽璁惧寮傚父" + ex.getMessage());
         }
     }
 
@@ -376,14 +381,14 @@
      */
     @Override
     @SdkOperate
-    public boolean pTZControl(CameraCmd cmd) {
+    public AjaxResult pTZControl(CameraCmd cmd) {
         String cameraId = cmd.getCameraId();
         boolean enable = cmd.isEnable();
         Integer channelNum = cmd.getChanNo();
         Integer speed = cmd.getSpeed();
         Integer code = cmd.getCode();
         if (!GlobalVariable.loginMap.containsKey(cameraId)) {
-            return false;
+            return AjaxResult.error("璁惧鏈櫥褰�");
         }
         Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
         int dwStop;
@@ -451,9 +456,10 @@
         boolean bool = hCNetSDK.NET_DVR_PTZControlWithSpeed_Other(userId, channelNum, dwPTZCommand, dwStop, speed);
         if (!bool) {
             int errorCode = hCNetSDK.NET_DVR_GetLastError();
-            log.error("鎺у埗澶辫触,璇风◢鍚庨噸璇�" + errorCode);
+            log.error("鎺у埗澶辫触: errorCode:" + errorCode + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode));
+            return AjaxResult.error("鎺у埗澶辫触: errorCode:" + errorCode + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode));
         }
-        return bool;
+        return AjaxResult.success("鎺у埗鎴愬姛");
     }
 
     /**
@@ -462,12 +468,12 @@
      * @param cmd 鐩告満鍛戒护
      */
     @Override
-    public boolean setFocusPos(CameraCmd cmd) {
+    public AjaxResult setFocusPos(CameraCmd cmd) {
         String cameraId = cmd.getCameraId();
         Integer channelNum = cmd.getChanNo();
         Integer dwFocusPos = cmd.getDwFocusPos();
         if (!GlobalVariable.loginMap.containsKey(cameraId)) {
-            return false;
+            return AjaxResult.error("璁惧鏈櫥褰�");
         }
         // 鑾峰彇鍙傛暟
         Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
@@ -485,10 +491,9 @@
         if (!bool) {
             int code = hCNetSDK.NET_DVR_GetLastError();
             log.error("璁剧疆GIS淇℃伅鏁版嵁澶辫触,璇风◢鍚庨噸璇�" + code);
-            return false;
-        } else {
-            return true;
+            return AjaxResult.error("璁剧疆GIS淇℃伅鏁版嵁澶辫触: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code));
         }
+        return AjaxResult.success("璁剧疆GIS淇℃伅鏁版嵁鎴愬姛");
     }
 
     /**
@@ -497,12 +502,11 @@
      * @param cmd 鐩告満鍛戒护
      */
     @Override
-    public int getFocusPos(CameraCmd cmd) {
-        int result = 0;
+    public AjaxResult getFocusPos(CameraCmd cmd) {
         String cameraId = cmd.getCameraId();
         Integer channelNum = cmd.getChanNo();
         if (!GlobalVariable.loginMap.containsKey(cameraId)) {
-            return result;
+            return AjaxResult.error("璁惧鏈櫥褰�");
         }
         // 鑾峰彇鍙傛暟
         Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
@@ -518,13 +522,12 @@
         boolean bool = hCNetSDK.NET_DVR_GetSTDConfig(userId, NET_DVR_GET_GISINFO, struStdCfg);
         if (!bool) {
             int code = hCNetSDK.NET_DVR_GetLastError();
-            log.error("鑾峰彇GIS淇℃伅鏁版嵁澶辫触,璇风◢鍚庨噸璇�" + code);
-            return result;
-        } else {
-            struGisInfo.read();
-            result = struGisInfo.struPtzPosEx.dwFocus;
+            log.error("鑾峰彇鑱氱劍鍊煎け璐�: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code));
+            return AjaxResult.error("鑾峰彇鑱氱劍鍊煎け璐�: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code));
         }
-        return result;
+        struGisInfo.read();
+        int result = struGisInfo.struPtzPosEx.dwFocus;
+        return AjaxResult.success(result);
     }
 
     /**
@@ -533,20 +536,21 @@
      * @param cmd 鐩告満鍛戒护
      */
     @Override
-    public boolean setPreset(CameraCmd cmd) {
+    public AjaxResult setPreset(CameraCmd cmd) {
         String cameraId = cmd.getCameraId();
         Integer channelNum = cmd.getChanNo();
         Integer PresetIndex = cmd.getPresetIndex();
         if (!GlobalVariable.loginMap.containsKey(cameraId)) {
-            return false;
+            return AjaxResult.error("璁惧鏈櫥褰�");
         }
         Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
         boolean bool = hCNetSDK.NET_DVR_PTZPreset_Other(userId, channelNum, SET_PRESET, PresetIndex);
         if (!bool) {
             int code = hCNetSDK.NET_DVR_GetLastError();
-            log.error("棰勭疆鐐硅缃け璐�,璇风◢鍚庨噸璇�" + code);
+            log.error("棰勭疆鐐硅缃け璐�: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code));
+            return AjaxResult.error("棰勭疆鐐硅缃け璐�: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code));
         }
-        return bool;
+        return AjaxResult.success("棰勭疆鐐硅缃垚鍔�");
     }
 
     /**
@@ -555,20 +559,21 @@
      * @param cmd 鐩告満鍛戒护
      */
     @Override
-    public boolean gotoPreset(CameraCmd cmd) {
+    public AjaxResult gotoPreset(CameraCmd cmd) {
         String cameraId = cmd.getCameraId();
         Integer channelNum = cmd.getChanNo();
         Integer PresetIndex = cmd.getPresetIndex();
         if (!GlobalVariable.loginMap.containsKey(cameraId)) {
-            return false;
+            return AjaxResult.error("璁惧鏈櫥褰�");
         }
         Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
         boolean bool = hCNetSDK.NET_DVR_PTZPreset_Other(userId, channelNum, GOTO_PRESET, PresetIndex);
         if (!bool) {
             int code = hCNetSDK.NET_DVR_GetLastError();
-            log.error("棰勭疆鐐硅缃け璐�,璇风◢鍚庨噸璇�" + code);
+            log.error("璋冪敤棰勭疆鐐瑰け璐�: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code));
+            return AjaxResult.error("璋冪敤棰勭疆鐐瑰け璐�: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code));
         }
-        return bool;
+        return AjaxResult.success("璋冪敤棰勭疆鐐规垚鍔�");
     }
 
     /**
@@ -891,11 +896,11 @@
      * @鍒涘缓鏃堕棿 2023/1/17 16:36
      * @淇敼浜哄拰鍏跺畠淇℃伅
      */
-    public Map<String, Object> getPtz1(CameraCmd cmd) {
+    public AjaxResult getPtz(CameraCmd cmd) {
         String cameraId = cmd.getCameraId();
         Integer channelNum = cmd.getChanNo();
         if (!GlobalVariable.loginMap.containsKey(cameraId)) {
-            return new HashMap<>();
+            return AjaxResult.error("璁惧鏈櫥褰�");
         }
         Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
 
@@ -904,31 +909,30 @@
         IntByReference ibrBytesReturned = new IntByReference(0);
         m_ptzPosCurrent.write();
         boolean bool = hCNetSDK.NET_DVR_GetDVRConfig(userId, HCNetSDK.NET_DVR_GET_PTZPOS, channelNum, pioint, m_ptzPosCurrent.size(), ibrBytesReturned);
-        if (bool) {
-            m_ptzPosCurrent.read();
-            // DecimalFormat df = new DecimalFormat("0.0");//璁剧疆淇濈暀浣嶆暟
-            //16杩涘埗杞琁nteger鍚庨櫎10锛屼繚鐣欏皬鏁扮偣1浣�
-            //瀹為檯鏄剧ず鐨凱TZ鍊兼槸鑾峰彇鍒扮殑鍗佸叚杩涘埗鍊肩殑鍗佸垎涔嬩竴锛�
-            //濡傝幏鍙栫殑姘村钩鍙傛暟P鐨勫�兼槸0x1750锛屽疄闄呮樉绀虹殑P鍊间负175搴︼紱
-            //鑾峰彇鍒扮殑鍨傜洿鍙傛暟T鐨勫�兼槸0x0789锛屽疄闄呮樉绀虹殑T鍊间负78.9搴︼紱
-            //鑾峰彇鍒扮殑鍙樺�嶅弬鏁癦鐨勫�兼槸0x1100锛屽疄闄呮樉绀虹殑Z鍊间负110鍊嶃��
-            BigDecimal b = new BigDecimal((float) Integer.parseInt(Integer.toHexString(m_ptzPosCurrent.wPanPos)) / 10);
-            BigDecimal c = new BigDecimal((float) Integer.parseInt(Integer.toHexString(m_ptzPosCurrent.wTiltPos)) / 10);
-            BigDecimal d = new BigDecimal((float) Integer.parseInt(Integer.toHexString(m_ptzPosCurrent.wZoomPos)) / 10);
-            double p = b.setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
-            double t = c.setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
-            double z = d.setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
-            //log.debug("T鍨傜洿鍙傛暟涓�: " + p + "P姘村钩鍙傛暟涓�: " + t + "Z鍙樺�嶅弬鏁颁负: " + z);
-            Map<String, Object> ptzMap = new HashMap<>();
-            ptzMap.put("p", p);
-            ptzMap.put("t", t);
-            ptzMap.put("z", z);
-            return ptzMap;
-        } else {
+        if (!bool) {
             int code = hCNetSDK.NET_DVR_GetLastError();
-            log.error("鎺у埗澶辫触,璇风◢鍚庨噸璇�" + code);
-            return new HashMap<>();
+            log.error("鑾峰彇ptz澶辫触: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code));
+            return AjaxResult.error("鑾峰彇ptz澶辫触: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code));
         }
+        m_ptzPosCurrent.read();
+        // DecimalFormat df = new DecimalFormat("0.0");//璁剧疆淇濈暀浣嶆暟
+        //16杩涘埗杞琁nteger鍚庨櫎10锛屼繚鐣欏皬鏁扮偣1浣�
+        //瀹為檯鏄剧ず鐨凱TZ鍊兼槸鑾峰彇鍒扮殑鍗佸叚杩涘埗鍊肩殑鍗佸垎涔嬩竴锛�
+        //濡傝幏鍙栫殑姘村钩鍙傛暟P鐨勫�兼槸0x1750锛屽疄闄呮樉绀虹殑P鍊间负175搴︼紱
+        //鑾峰彇鍒扮殑鍨傜洿鍙傛暟T鐨勫�兼槸0x0789锛屽疄闄呮樉绀虹殑T鍊间负78.9搴︼紱
+        //鑾峰彇鍒扮殑鍙樺�嶅弬鏁癦鐨勫�兼槸0x1100锛屽疄闄呮樉绀虹殑Z鍊间负110鍊嶃��
+        BigDecimal b = new BigDecimal((float) Integer.parseInt(Integer.toHexString(m_ptzPosCurrent.wPanPos)) / 10);
+        BigDecimal c = new BigDecimal((float) Integer.parseInt(Integer.toHexString(m_ptzPosCurrent.wTiltPos)) / 10);
+        BigDecimal d = new BigDecimal((float) Integer.parseInt(Integer.toHexString(m_ptzPosCurrent.wZoomPos)) / 10);
+        double p = b.setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
+        double t = c.setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
+        double z = d.setScale(1, BigDecimal.ROUND_HALF_UP).doubleValue();
+        //log.debug("T鍨傜洿鍙傛暟涓�: " + p + "P姘村钩鍙傛暟涓�: " + t + "Z鍙樺�嶅弬鏁颁负: " + z);
+        Map<String, Object> ptzMap = new HashMap<>();
+        ptzMap.put("p", p);
+        ptzMap.put("t", t);
+        ptzMap.put("z", z);
+        return AjaxResult.success(ptzMap);
     }
 
     /**
@@ -940,13 +944,13 @@
      * @淇敼浜哄拰鍏跺畠淇℃伅
      */
     @Override
-    public Map<String, Object> getPtz(CameraCmd cmd) {
+    public AjaxResult getPtzHigh(CameraCmd cmd) {
         Map<String, Object> ptzMap = new HashMap<>();
         try {
             String cameraId = cmd.getCameraId();
             Integer chanNo = cmd.getChanNo();
             if (!GlobalVariable.loginMap.containsKey(cameraId)) {
-                return new HashMap<>();
+                return AjaxResult.error("璁惧鏈櫥褰�");
             }
             IntByReference pchannel = new IntByReference(chanNo);
             Pointer pChannelNum = pchannel.getPointer();
@@ -962,24 +966,26 @@
             lpConfigParam6696.write();
             boolean res = hCNetSDK.NET_DVR_GetSTDConfig(lUserID, HCNetSDK.NET_DVR_GET_PTZABSOLUTEEX, lpConfigParam6696);
             if (!res) {
-                log.error("鑾峰彇楂樼簿搴TZ缁濆浣嶇疆閰嶇疆澶辫触锛岄敊璇彿锛�" + hCNetSDK.NET_DVR_GetLastError());
-            } else {
-                lpPTZAbsoluteEX_cfg.read();
-                //log.debug("P锛�" + lpPTZAbsoluteEX_cfg.struPTZCtrl.fPan + " T锛�" + lpPTZAbsoluteEX_cfg.struPTZCtrl.fTilt + " Z锛�" + lpPTZAbsoluteEX_cfg.struPTZCtrl.fZoom
-                //        + " 鑱氱劍鍙傛暟锛�" + lpPTZAbsoluteEX_cfg.struPTZCtrl.dwFocus + " 鑱氱劍鑼冨洿锛�" + lpPTZAbsoluteEX_cfg.dwFocalLen + " 姘村钩杞姩閫熷害锛�" + lpPTZAbsoluteEX_cfg.fHorizontalSpeed
-                //        + " 鍨傜洿杞姩閫熷害锛�" + lpPTZAbsoluteEX_cfg.fVerticalSpeed + " 闀滃ご鍙樺�嶉厤缃被鍨嬶細" + lpPTZAbsoluteEX_cfg.byZoomType);
-                float p = lpPTZAbsoluteEX_cfg.struPTZCtrl.fPan;
-                float fTilt = lpPTZAbsoluteEX_cfg.struPTZCtrl.fTilt;
-                float t = fTilt < 0 ? fTilt + 360 : fTilt;
-                float z = lpPTZAbsoluteEX_cfg.struPTZCtrl.fZoom;
-                ptzMap.put("p", p);
-                ptzMap.put("t", t);
-                ptzMap.put("z", z);
+                int code = hCNetSDK.NET_DVR_GetLastError();
+                log.error("鑾峰彇楂樼簿搴TZ缁濆浣嶇疆閰嶇疆澶辫触: errorCde" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code));
+                return AjaxResult.error("鑾峰彇楂樼簿搴TZ缁濆浣嶇疆閰嶇疆澶辫触: errorCde" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code));
             }
+            lpPTZAbsoluteEX_cfg.read();
+            //log.debug("P锛�" + lpPTZAbsoluteEX_cfg.struPTZCtrl.fPan + " T锛�" + lpPTZAbsoluteEX_cfg.struPTZCtrl.fTilt + " Z锛�" + lpPTZAbsoluteEX_cfg.struPTZCtrl.fZoom
+            //        + " 鑱氱劍鍙傛暟锛�" + lpPTZAbsoluteEX_cfg.struPTZCtrl.dwFocus + " 鑱氱劍鑼冨洿锛�" + lpPTZAbsoluteEX_cfg.dwFocalLen + " 姘村钩杞姩閫熷害锛�" + lpPTZAbsoluteEX_cfg.fHorizontalSpeed
+            //        + " 鍨傜洿杞姩閫熷害锛�" + lpPTZAbsoluteEX_cfg.fVerticalSpeed + " 闀滃ご鍙樺�嶉厤缃被鍨嬶細" + lpPTZAbsoluteEX_cfg.byZoomType);
+            float p = lpPTZAbsoluteEX_cfg.struPTZCtrl.fPan;
+            float fTilt = lpPTZAbsoluteEX_cfg.struPTZCtrl.fTilt;
+            float t = fTilt < 0 ? fTilt + 360 : fTilt;
+            float z = lpPTZAbsoluteEX_cfg.struPTZCtrl.fZoom;
+            ptzMap.put("p", p);
+            ptzMap.put("t", t);
+            ptzMap.put("z", z);
+            return AjaxResult.success(ptzMap);
         } catch (Exception ex) {
             log.error("鑾峰彇楂樼簿搴TZ缁濆浣嶇疆寮傚父:" + ex.getMessage());
+            return AjaxResult.error("鑾峰彇楂樼簿搴TZ缁濆浣嶇疆寮傚父:" + ex.getMessage());
         }
-        return ptzMap;
     }
 
     /**
@@ -992,12 +998,12 @@
      */
     @Override
     @SdkOperate
-    public boolean setPtz1(CameraCmd cmd) {
+    public AjaxResult setPtz(CameraCmd cmd) {
         String cameraId = cmd.getCameraId();
         Integer channelNum = cmd.getChanNo();
         Map<String, Double> ptz = cmd.getPtzMap();
         if (!GlobalVariable.loginMap.containsKey(cameraId)) {
-            return false;
+            return AjaxResult.error("璁惧鏈櫥褰�");
         }
         Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
         NET_DVR_PTZPOS m_ptzPosCurrent = new NET_DVR_PTZPOS();
@@ -1013,13 +1019,14 @@
             m_ptzPosCurrent.write();
             boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_PTZPOS, channelNum, point, m_ptzPosCurrent.size());
             if (!bool) {
-                int code = hCNetSDK.NET_DVR_GetLastError();
-                log.error("璁剧疆PTZ鍙傛暟澶辫触,璇风◢鍚庨噸璇�:" + code);
+                int errorCode = hCNetSDK.NET_DVR_GetLastError();
+                log.error("璁剧疆PTZ鍙傛暟澶辫触:" + errorCode);
+                return AjaxResult.error("璁剧疆PTZ鍙傛暟澶辫触: errorCode:" + errorCode + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode));
             }
-            return bool;
+            return AjaxResult.success("璁剧疆PTZ鍙傛暟鎴愬姛");
         } catch (Exception ex) {
             log.error(ex.getMessage());
-            return false;
+            return AjaxResult.error("璁剧疆PTZ鍙傛暟寮傚父:" + ex.getMessage());
         }
     }
 
@@ -1033,13 +1040,13 @@
      */
     @Override
     @SdkOperate
-    public boolean setPtz(CameraCmd cmd) {
+    public AjaxResult setPtzHigh(CameraCmd cmd) {
         try {
             String cameraId = cmd.getCameraId();
             Integer chanNo = cmd.getChanNo();
             Map<String, Double> ptz = cmd.getPtzMap();
             if (!GlobalVariable.loginMap.containsKey(cameraId)) {
-                return false;
+                return AjaxResult.error("璁惧鏈櫥褰�");
             }
             Integer lUserID = (Integer) GlobalVariable.loginMap.get(cameraId);
             IntByReference pchannel = new IntByReference(chanNo);
@@ -1071,24 +1078,25 @@
             lpConfigParam6697.write();
             boolean bool = hCNetSDK.NET_DVR_SetSTDConfig(lUserID, NET_DVR_SET_PTZABSOLUTEEX, lpConfigParam6697);
             if (!bool) {
-                int code = hCNetSDK.NET_DVR_GetLastError();
-                log.error("璁剧疆楂樼簿搴TZ鍙傛暟澶辫触,璇风◢鍚庨噸璇�:" + code);
+                int errorCode = hCNetSDK.NET_DVR_GetLastError();
+                log.error("璁剧疆楂樼簿搴TZ鍙傛暟澶辫触:" + errorCode);
+                return AjaxResult.error("璁剧疆楂樼簿搴TZ鍙傛暟澶辫触: errorCode:" + errorCode + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(errorCode));
             }
-            return bool;
+            return AjaxResult.success("璁剧疆楂樼簿搴TZ鍙傛暟鎴愬姛");
 
         } catch (Exception ex) {
             log.error("璁剧疆楂樼簿搴TZ鍙傛暟寮傚父", ex);
-            return false;
+            return AjaxResult.error("璁剧疆楂樼簿搴TZ鍙傛暟寮傚父:" + ex);
         }
     }
 
     @Override
     @SdkOperate
-    public boolean guideTargetPosition(CameraCmd cmd) {
+    public AjaxResult guideTargetPosition(CameraCmd cmd) {
         String cameraId = cmd.getCameraId();
         Integer chanNo = cmd.getChanNo();
         if (!GlobalVariable.loginMap.containsKey(cameraId)) {
-            return false;
+            return AjaxResult.error("璁惧鏈櫥褰�");
         }
         Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
         NET_DVR_PTZPOS m_ptzPosCurrent = new NET_DVR_PTZPOS();
@@ -1110,11 +1118,12 @@
             if (!bool) {
                 int code = hCNetSDK.NET_DVR_GetLastError();
                 log.error("璁剧疆ptz澶辫触,璇风◢鍚庨噸璇�" + code);
+                return AjaxResult.error("璁剧疆ptz澶辫触: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code));
             }
-            return bool;
+            return AjaxResult.success("寮曞鍧愭爣鎴愬姛");
         } catch (Exception ex) {
-            log.error("寮曞寮傚父:" + ex.getMessage());
-            return false;
+            log.error("寮曞鍧愭爣寮傚父:" + ex.getMessage());
+            return AjaxResult.error("寮曞鍧愭爣寮傚父:" + ex.getMessage());
         }
     }
 
@@ -1127,11 +1136,11 @@
      * @鍒涘缓鏃堕棿 2023/1/17 16:36
      * @淇敼浜哄拰鍏跺畠淇℃伅 0-瑙i攣 1-閿佸畾
      */
-    public int getPTZLockInfo(CameraCmd cmd) {
+    public AjaxResult getPTZLockInfo(CameraCmd cmd) {
         String cameraId = cmd.getCameraId();
         Integer channelNum = cmd.getChanNo();
         if (!GlobalVariable.loginMap.containsKey(cameraId)) {
-            return -1;
+            return AjaxResult.error("璁惧鏈櫥褰�");
         }
         Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
         NET_DVR_PTZ_LOCKCFG netDvrPtzLockcfg = new NET_DVR_PTZ_LOCKCFG();
@@ -1141,11 +1150,12 @@
         boolean bool = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_PTZLOCKCFG, channelNum, point, netDvrPtzLockcfg.size(), ibrBytesReturned);
         if (!bool) {
             int code = hCNetSDK.NET_DVR_GetLastError();
-            log.error("鑾峰彇ptz閿佸畾淇℃伅澶辫触,璇风◢鍚庨噸璇�" + code);
-            return -1;
+            log.error("鑾峰彇ptz閿佸畾淇℃伅澶辫触: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code));
+            return AjaxResult.error("鑾峰彇ptz閿佸畾淇℃伅澶辫触: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code));
         } else {
             netDvrPtzLockcfg.read();
-            return netDvrPtzLockcfg.byWorkMode;
+            int byWorkMode = netDvrPtzLockcfg.byWorkMode;
+            return AjaxResult.success(byWorkMode);
         }
     }
 
@@ -1159,11 +1169,11 @@
      */
     @Override
     @SdkOperate
-    public boolean setZeroPtz(CameraCmd cmd) {
+    public AjaxResult setZeroPtz(CameraCmd cmd) {
         String cameraId = cmd.getCameraId();
         Integer channelNum = cmd.getChanNo();
         if (!GlobalVariable.loginMap.containsKey(cameraId)) {
-            return false;
+            return AjaxResult.error("璁惧鏈櫥褰�");
         }
         Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
         NET_DVR_INITIALPOSITIONCTRL initialpositionctrl = new NET_DVR_INITIALPOSITIONCTRL();
@@ -1176,10 +1186,11 @@
         initialpositionctrl.write();
         boolean bool = hCNetSDK.NET_DVR_RemoteControl(userId, NET_DVR_PTZ_INITIALPOSITIONCTRL, point, initialpositionctrl.size());
         if (!bool) {
-            int i = hCNetSDK.NET_DVR_GetLastError();
-            log.error("閿欒鐮侊細" + i);
+            int code = hCNetSDK.NET_DVR_GetLastError();
+            log.error("璁剧疆闆舵柟浣嶈澶辫触:" + code);
+            return AjaxResult.error("璁剧疆闆舵柟浣嶈澶辫触: errorCode:" + code + "errorInfo:" + SdkErrorCodeEnum.getDescByCode(code));
         }
-        return bool;
+        return AjaxResult.success();
     }
 
     /**
@@ -1191,11 +1202,11 @@
      * @淇敼浜哄拰鍏跺畠淇℃伅
      */
     @Override
-    public Map<String, Object> getPtzScope(CameraCmd cmd) {
+    public AjaxResult getPtzScope(CameraCmd cmd) {
         String cameraId = cmd.getCameraId();
         Integer channelNum = cmd.getChanNo();
         if (!GlobalVariable.loginMap.containsKey(cameraId)) {
-            return new HashMap<>();
+            return AjaxResult.error("璁惧鏈櫥褰�");
         }
         Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
         NET_DVR_PTZSCOPE m_ptzPosCurrent = new NET_DVR_PTZSCOPE();
@@ -1205,8 +1216,8 @@
         boolean bool = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_PTZSCOPE, channelNum, point, m_ptzPosCurrent.size(), ibrBytesReturned);
         if (!bool) {
             int code = hCNetSDK.NET_DVR_GetLastError();
-            log.error("璁剧疆ptz澶辫触,璇风◢鍚庨噸璇�" + code);
-            return new HashMap<>();
+            log.error("鑾峰彇ptz鑼冨洿澶辫触: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code));
+            return AjaxResult.error("鑾峰彇ptz鑼冨洿澶辫触: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code));
         } else {
             m_ptzPosCurrent.read();
             DecimalFormat df = new DecimalFormat("0.0");//璁剧疆淇濈暀浣嶆暟
@@ -1224,13 +1235,12 @@
             ptzScopeMap.put("tMin", wTiltPosMin);
             ptzScopeMap.put("zMax", wZoomPosMax);
             ptzScopeMap.put("zMin", wZoomPosMin);
-            return ptzScopeMap;
+            return AjaxResult.success(ptzScopeMap);
         }
-
     }
 
     /**
-     * @鎻忚堪 閫忛浘寮�鍏�
+     * @鎻忚堪 鍒囨崲閫忛浘
      * @鍙傛暟 [userId, channelNum, enable]
      * @杩斿洖鍊� boolean
      * @鍒涘缓浜� 鍒樿嫃涔�
@@ -1238,12 +1248,12 @@
      * @淇敼浜哄拰鍏跺畠淇℃伅
      */
     @Override
-    public boolean controlDefogcfg(CameraCmd cmd) {
+    public AjaxResult controlDefogcfg(CameraCmd cmd) {
         String cameraId = cmd.getCameraId();
         boolean enable = cmd.isEnable();
         Integer channelNum = cmd.getChanNo();
         if (!GlobalVariable.loginMap.containsKey(cameraId)) {
-            return false;
+            return AjaxResult.error("璁惧鏈櫥褰�");
         }
         Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
         NET_DVR_CAMERAPARAMCFG_EX struCameraParam = new NET_DVR_CAMERAPARAMCFG_EX();
@@ -1251,7 +1261,9 @@
         IntByReference ibrBytesReturned = new IntByReference(0);
         boolean b_GetCameraParam = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_CCDPARAMCFG_EX, channelNum, point, struCameraParam.size(), ibrBytesReturned);
         if (!b_GetCameraParam) {
-            log.error("鑾峰彇鍓嶇鍙傛暟澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError());
+            int code = hCNetSDK.NET_DVR_GetLastError();
+            log.error("鑾峰彇鍓嶇鍙傛暟澶辫触: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code));
+            return AjaxResult.error("鑾峰彇鍓嶇鍙傛暟澶辫触: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code));
         }
         struCameraParam.read();
         log.debug("鏄惁寮�鍚�忛浘锛�" + struCameraParam.struDefogCfg.byMode);
@@ -1268,14 +1280,15 @@
         boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_CCDPARAMCFG_EX, channelNum, point, struCameraParam.size());
         if (!bool) {
             int code = hCNetSDK.NET_DVR_GetLastError();
-            log.error("璁剧疆閫忛浘澶辫触,璇风◢鍚庨噸璇�" + code);
+            log.error("鍒囨崲閫忛浘澶辫触: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code));
+            return AjaxResult.error("鍒囨崲閫忛浘澶辫触: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code));
         }
-        log.debug("璁剧疆閫忛浘鎴愬姛");
-        return bool;
+        log.debug("鍒囨崲閫忛浘鎴愬姛");
+        return AjaxResult.success("鍒囨崲閫忛浘鎴愬姛");
     }
 
     /**
-     * @鎻忚堪 绾㈠寮�鍏�
+     * @鎻忚堪 鍒囨崲绾㈠
      * @鍙傛暟 [userId, channelNum, enable]
      * @杩斿洖鍊� boolean
      * @鍒涘缓浜� 鍒樿嫃涔�
@@ -1283,20 +1296,22 @@
      * @淇敼浜哄拰鍏跺畠淇℃伅
      */
     @Override
-    public boolean controlInfrarecfg(CameraCmd cmd) {
+    public AjaxResult controlInfrarecfg(CameraCmd cmd) {
         String cameraId = cmd.getCameraId();
         boolean enable = cmd.isEnable();
         Integer chanNo = cmd.getChanNo();
         if (!GlobalVariable.loginMap.containsKey(cameraId)) {
-            return false;
+            return AjaxResult.error("璁惧鏈櫥褰�");
         }
         Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
         NET_DVR_CAMERAPARAMCFG_EX struDayNigh = new NET_DVR_CAMERAPARAMCFG_EX();
         Pointer point = struDayNigh.getPointer();
         IntByReference ibrBytesReturned = new IntByReference(0);
-        boolean b_GetCameraParam = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_CCDPARAMCFG_EX, chanNo, point, struDayNigh.size(), ibrBytesReturned);
+        boolean b_GetCameraParam = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_CCDPARAMCFG, chanNo, point, struDayNigh.size(), ibrBytesReturned);
         if (!b_GetCameraParam) {
-            log.error("鑾峰彇鍓嶇鍙傛暟澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError());
+            int code = hCNetSDK.NET_DVR_GetLastError();
+            log.error("鑾峰彇鍓嶇鍙傛暟澶辫触: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code));
+            return AjaxResult.error("鑾峰彇鍓嶇鍙傛暟澶辫触: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code));
         }
         struDayNigh.read();
         String current = struDayNigh.struDayNight.byDayNightFilterType == 1 ? "寮�鍚�" : "鍏抽棴";
@@ -1312,15 +1327,14 @@
         daynight.byDayNightFilterTime = 60;
         struDayNigh.struDayNight = daynight;
         struDayNigh.write();
-        boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_CCDPARAMCFG_EX, chanNo, point, struDayNigh.size());
+        boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_CCDPARAMCFG, chanNo, point, struDayNigh.size());
         if (!bool) {
             int code = hCNetSDK.NET_DVR_GetLastError();
-            log.error("璁剧疆澶滆澶辫触,璇风◢鍚庨噸璇�" + code);
-        } else {
-            log.debug("璁剧疆澶滆鎴愬姛");
+            log.error("鍒囨崲绾㈠澶辫触 ErrorCode:{},ErrorInfo:{}", code, SdkErrorCodeEnum.getDescByCode(code));
+            return AjaxResult.error("鍒囨崲绾㈠澶辫触: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code));
         }
-
-        return bool;
+        log.debug("鍒囨崲绾㈠鎴愬姛");
+        return AjaxResult.success("鍒囨崲绾㈠鎴愬姛");
     }
 
     /**
@@ -1332,12 +1346,12 @@
      * @淇敼浜哄拰鍏跺畠淇℃伅
      */
     @Override
-    public boolean controlFocusMode(CameraCmd cmd) {
+    public AjaxResult controlFocusMode(CameraCmd cmd) {
         String cameraId = cmd.getCameraId();
         boolean enable = cmd.isEnable();
         Integer channelNum = cmd.getChanNo();
         if (!GlobalVariable.loginMap.containsKey(cameraId)) {
-            return false;
+            return AjaxResult.error("璁惧鏈櫥褰�");
         }
         Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
         NET_DVR_FOCUSMODE_CFG struFocusMode = new NET_DVR_FOCUSMODE_CFG();
@@ -1345,7 +1359,9 @@
         IntByReference ibrBytesReturned = new IntByReference(0);
         boolean b_GetCameraParam = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_FOCUSMODECFG, channelNum, point, struFocusMode.size(), ibrBytesReturned);
         if (!b_GetCameraParam) {
-            log.error("鑾峰彇鍓嶇鍙傛暟澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError());
+            int code = hCNetSDK.NET_DVR_GetLastError();
+            log.error("鑾峰彇鍓嶇鍙傛暟澶辫触: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code));
+            return AjaxResult.error("鑾峰彇鍓嶇鍙傛暟澶辫触: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code));
         }
         struFocusMode.read();
         log.debug("褰撳墠鑱氱劍妯″紡锛�" + struFocusMode.byFocusMode);
@@ -1362,10 +1378,11 @@
         boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_FOCUSMODECFG, channelNum, point, struFocusMode.size());
         if (!bool) {
             int code = hCNetSDK.NET_DVR_GetLastError();
-            log.error("璁剧疆鑱氱劍妯″紡澶辫触,璇风◢鍚庨噸璇�" + code);
+            log.error("璁剧疆鑱氱劍妯″紡澶辫触: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code));
+            return AjaxResult.error("璁剧疆鑱氱劍妯″紡澶辫触: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code));
         }
         log.debug("璁剧疆鑱氱劍妯″紡鎴愬姛");
-        return bool;
+        return AjaxResult.success("璁剧疆鑱氱劍妯″紡鎴愬姛");
     }
 
     /**
@@ -1376,11 +1393,11 @@
      * @鍒涘缓鏃堕棿 2023/1/18 13:07
      * @淇敼浜哄拰鍏跺畠淇℃伅
      */
-    public String getFocusMode(CameraCmd cmd) {
+    public AjaxResult getFocusMode(CameraCmd cmd) {
         String cameraId = cmd.getCameraId();
         Integer channelNum = cmd.getChanNo();
         if (!GlobalVariable.loginMap.containsKey(cameraId)) {
-            return "";
+            return AjaxResult.error("璁惧鏈櫥褰�");
         }
         Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
         NET_DVR_FOCUSMODE_CFG struFocusMode = new NET_DVR_FOCUSMODE_CFG();
@@ -1388,11 +1405,13 @@
         IntByReference ibrBytesReturned = new IntByReference(0);
         boolean b_GetCameraParam = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_FOCUSMODECFG, channelNum, point, struFocusMode.size(), ibrBytesReturned);
         if (!b_GetCameraParam) {
-            log.error("鑾峰彇鍓嶇鍙傛暟澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError());
+            int code = hCNetSDK.NET_DVR_GetLastError();
+            log.error("鑾峰彇鍓嶇鍙傛暟澶辫触: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code));
+            return AjaxResult.error("鑾峰彇鍓嶇鍙傛暟澶辫触: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code));
         }
         struFocusMode.read();
         log.debug("褰撳墠鑱氱劍妯″紡锛�" + struFocusMode.byFocusMode);
-        return String.valueOf(struFocusMode.byFocusMode);
+        return AjaxResult.success(struFocusMode.byFocusMode);
     }
 
     /**
@@ -1404,12 +1423,12 @@
      * @淇敼浜哄拰鍏跺畠淇℃伅
      */
     @Override
-    public boolean controlPTHeateRpwron(CameraCmd cmd) {
+    public AjaxResult controlPTHeateRpwron(CameraCmd cmd) {
         String cameraId = cmd.getCameraId();
         boolean enable = cmd.isEnable();
         Integer channelNum = cmd.getChanNo();
         if (!GlobalVariable.loginMap.containsKey(cameraId)) {
-            return false;
+            return AjaxResult.error("璁惧鏈櫥褰�");
         }
         Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
         int dwStop;
@@ -1421,10 +1440,11 @@
         boolean bool = hCNetSDK.NET_DVR_PTZControl_Other(userId, channelNum, HEATER_PWRON, dwStop);
         if (!bool) {
             int code = hCNetSDK.NET_DVR_GetLastError();
-            log.error("璁剧疆浜戝彴鍔犵儹澶辫触,璇风◢鍚庨噸璇�" + code);
+            log.error("璁剧疆浜戝彴鍔犵儹澶辫触: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code));
+            return AjaxResult.error("璁剧疆浜戝彴鍔犵儹澶辫触: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code));
         }
         log.debug("璁剧疆浜戝彴鍔犵儹鎴愬姛");
-        return bool;
+        return AjaxResult.success("璁剧疆浜戝彴鍔犵儹鎴愬姛");
     }
 
     /**
@@ -1436,12 +1456,12 @@
      * @淇敼浜哄拰鍏跺畠淇℃伅
      */
     @Override
-    public boolean controlCameraDeicing(CameraCmd cmd) {
+    public AjaxResult controlCameraDeicing(CameraCmd cmd) {
         String cameraId = cmd.getCameraId();
         boolean enable = cmd.isEnable();
         Integer channelNum = cmd.getChanNo();
         if (!GlobalVariable.loginMap.containsKey(cameraId)) {
-            return false;
+            return AjaxResult.error("璁惧鏈櫥褰�");
         }
         Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
         NET_DVR_DEVSERVER_CFG struDeicing = new NET_DVR_DEVSERVER_CFG();
@@ -1449,7 +1469,9 @@
         IntByReference ibrBytesReturned = new IntByReference(0);
         boolean b_GetCameraParam = hCNetSDK.NET_DVR_GetDVRConfig(userId, NET_DVR_GET_DEVSERVER_CFG, channelNum, point, struDeicing.size(), ibrBytesReturned);
         if (!b_GetCameraParam) {
-            log.error("鑾峰彇鍓嶇鍙傛暟澶辫触锛岄敊璇爜锛�" + hCNetSDK.NET_DVR_GetLastError());
+            int code = hCNetSDK.NET_DVR_GetLastError();
+            log.error("鑾峰彇鍓嶇鍙傛暟澶辫触: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code));
+            return AjaxResult.error("鑾峰彇鍓嶇鍙傛暟澶辫触: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code));
         }
         struDeicing.read();
         log.debug("鏄惁寮�鍚櫎鍐帮細" + struDeicing.byEnableDeicing);
@@ -1463,10 +1485,11 @@
         boolean bool = hCNetSDK.NET_DVR_SetDVRConfig(userId, NET_DVR_SET_DEVSERVER_CFG, channelNum, point, struDeicing.size());
         if (!bool) {
             int code = hCNetSDK.NET_DVR_GetLastError();
-            log.error("璁剧疆闀滃ご闄ゅ啺澶辫触,璇风◢鍚庨噸璇�" + code);
+            log.error("璁剧疆闀滃ご闄ゅ啺澶辫触: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code));
+            return AjaxResult.error("璁剧疆闀滃ご闄ゅ啺澶辫触: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code));
         }
         log.debug("璁剧疆闀滃ご闄ゅ啺鎴愬姛");
-        return bool;
+        return AjaxResult.success("璁剧疆闀滃ご闄ゅ啺鎴愬姛");
     }
 
     /**
@@ -1474,17 +1497,18 @@
      *
      * @param cmd 鐩告満鍛戒护
      */
-    public String captureJPEGPicture(CameraCmd cmd) {
+    public AjaxResult captureJPEGPicture(CameraCmd cmd) {
         String cameraId = cmd.getCameraId();
         Integer channelNum = cmd.getChanNo();
         if (!GlobalVariable.loginMap.containsKey(cameraId)) {
-            return "";
+            return AjaxResult.error("璁惧鏈櫥褰�");
         }
         Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
         NET_DVR_WORKSTATE_V30 devwork = new NET_DVR_WORKSTATE_V30();
         if (!hCNetSDK.NET_DVR_GetDVRWorkState_V30(userId, devwork)) {
-            // 杩斿洖Boolean鍊硷紝鍒ゆ柇鏄惁鑾峰彇璁惧鑳藉姏
-            log.error("鎶撳浘澶辫触锛岃绋嶅悗閲嶈瘯");
+            int code = hCNetSDK.NET_DVR_GetLastError();
+            log.error("鑾峰彇璁惧宸ヤ綔鐘舵�佸け璐�: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code));
+            return AjaxResult.error("鑾峰彇璁惧宸ヤ綔鐘舵�佸け璐�: errorCode" + code + " errorInfo" + SdkErrorCodeEnum.getDescByCode(code));
         }
         //鍥剧墖璐ㄩ噺
         NET_DVR_JPEGPARA jpeg = new NET_DVR_JPEGPARA();
@@ -1504,7 +1528,7 @@
         String png_base64 = decoder.encodeToString(jpegBuffer.array());//杞崲鎴恇ase64涓�
         png_base64 = png_base64.replaceAll("\n", "").replaceAll("\r", "");//鍒犻櫎 \r\n
         log.debug("-----------澶勭悊瀹屾垚鎴浘鏁版嵁----------");
-        return png_base64;
+        return AjaxResult.success(png_base64);
     }
 
     /**
@@ -1870,11 +1894,11 @@
      * @淇敼浜哄拰鍏跺畠淇℃伅 0-瑙i攣 1-閿佸畾
      */
     @Override
-    public Map<String, Object> getGisInfo(CameraCmd cmd) {
+    public AjaxResult getGisInfo(CameraCmd cmd) {
         String cameraId = cmd.getCameraId();
         Integer channelNum = cmd.getChanNo();
         if (!GlobalVariable.loginMap.containsKey(cameraId)) {
-            return new HashMap<>();
+            return AjaxResult.error("璁惧鏈櫥褰�");
         }
         // 鑾峰彇鍙傛暟
         Integer userId = (Integer) GlobalVariable.loginMap.get(cameraId);
@@ -1890,17 +1914,17 @@
         boolean bool = hCNetSDK.NET_DVR_GetSTDConfig(userId, NET_DVR_GET_GISINFO, struStdCfg);
         if (!bool) {
             int code = hCNetSDK.NET_DVR_GetLastError();
-            log.error("鑾峰彇GIS淇℃伅鏁版嵁澶辫触,璇风◢鍚庨噸璇�" + code);
-            return new HashMap<>();
-        } else {
-            struGisInfo.read();
-            Map<String, Object> map = new HashMap<>();
-            map.put("p", struGisInfo.struPtzPos.fPanPos);
-            map.put("t", struGisInfo.struPtzPos.fTiltPos < 0 ? struGisInfo.struPtzPos.fTiltPos + 360 : struGisInfo.struPtzPos.fTiltPos);
-            map.put("z", struGisInfo.struPtzPos.fZoomPos);
-            map.put("fHorFieldAngle", struGisInfo.fHorizontalValue);// 姘村钩瑙嗗満瑙�
-            map.put("fVerFieldAngle", struGisInfo.fVerticalValue);// 鍨傜洿瑙嗗満瑙�
-            return map;
+            log.error("鑾峰彇GIS淇℃伅鏁版嵁澶辫触: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code));
+            return AjaxResult.error("鑾峰彇GIS淇℃伅鏁版嵁澶辫触: errorCode:" + code + " errorInfo:" + SdkErrorCodeEnum.getDescByCode(code));
         }
+        struGisInfo.read();
+        Map<String, Object> map = new HashMap<>();
+        map.put("p", struGisInfo.struPtzPos.fPanPos);
+        map.put("t", struGisInfo.struPtzPos.fTiltPos < 0 ? struGisInfo.struPtzPos.fTiltPos + 360 : struGisInfo.struPtzPos.fTiltPos);
+        map.put("z", struGisInfo.struPtzPos.fZoomPos);
+        map.put("fHorFieldAngle", struGisInfo.fHorizontalValue);// 姘村钩瑙嗗満瑙�
+        map.put("fVerFieldAngle", struGisInfo.fVerticalValue);// 鍨傜洿瑙嗗満瑙�
+        return AjaxResult.success(map);
+
     }
 }

--
Gitblit v1.9.3