From 1fddea4f3d4e9415fe1f553c064d2daf953f3684 Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期四, 23 七月 2026 09:55:45 +0800
Subject: [PATCH] 监控

---
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/VideoMonitorController.java |   34 ++++++++++++++++++++++++++--------
 1 files changed, 26 insertions(+), 8 deletions(-)

diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/VideoMonitorController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/VideoMonitorController.java
index 5362ef6..5b2a4ec 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/VideoMonitorController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/VideoMonitorController.java
@@ -90,6 +90,7 @@
 
         JSONObject result = ezvizOpenApiUtils.ptzControl(
                 device.getDeviceSerial(),
+                defaultChannelNo(request.getChannelNo(), device),
                 StringUtils.hasText(request.getAction()) ? request.getAction() : "start",
                 request.getCommand(),
                 request.getSpeed()
@@ -108,7 +109,7 @@
 
         JSONObject result = ezvizOpenApiUtils.setSceneSwitch(
                 device.getDeviceSerial(),
-                defaultChannelNo(request.getChannelNo()),
+                defaultChannelNo(request.getChannelNo(), device),
                 request.getEnable()
         );
         return buildEzvizResult(result, "摄像头开关控制失败");
@@ -125,12 +126,19 @@
 
         JSONObject result = ezvizOpenApiUtils.ptzControl(
                 device.getDeviceSerial(),
+                defaultChannelNo(request.getChannelNo(), device),
                 "start",
                 request.getCommand(),
                 request.getSpeed()
         );
         if (isEzvizSuccess(result)) {
-            ezvizOpenApiUtils.ptzControl(device.getDeviceSerial(), "stop", request.getCommand(), null);
+            ezvizOpenApiUtils.ptzControl(
+                    device.getDeviceSerial(),
+                    defaultChannelNo(request.getChannelNo(), device),
+                    "stop",
+                    request.getCommand(),
+                    null
+            );
         }
         return buildEzvizResult(result, "焦距控制失败");
     }
@@ -149,7 +157,7 @@
             result = ezvizOpenApiUtils.getLocalPlaybackAddress(
                     device.getDeviceSerial(),
                     device.getValidateCode(),
-                    defaultChannelNo(request.getChannelNo()),
+                    defaultChannelNo(request.getChannelNo(), device),
                     request.getStartTime(),
                     request.getStopTime()
             );
@@ -157,7 +165,7 @@
             result = ezvizOpenApiUtils.getCloudPlaybackAddress(
                     device.getDeviceSerial(),
                     device.getValidateCode(),
-                    defaultChannelNo(request.getChannelNo()),
+                    defaultChannelNo(request.getChannelNo(), device),
                     request.getStartTime(),
                     request.getStopTime()
             );
@@ -213,7 +221,7 @@
     }
 
     private void fillLiveAddress(VideoMonitorDeviceVO vo, TDevice device) {
-        int channelNo = 1;
+        int channelNo = defaultChannelNo(null, device);
         try {
             vo.setAccessToken(ezvizOpenApiUtils.getAccessToken());
             vo.setChannelNo(channelNo);
@@ -247,7 +255,11 @@
             return defaultMessage;
         }
         String message = result.getString("msg");
-        return StringUtils.hasText(message) ? message : defaultMessage;
+        if (StringUtils.hasText(message)) {
+            return message;
+        }
+        String code = result.getString("code");
+        return StringUtils.hasText(code) ? defaultMessage + ",错误码:" + code : defaultMessage;
     }
 
     private String resolveVideoUrl(JSONObject result) {
@@ -262,7 +274,13 @@
         return data.getString("ezopen");
     }
 
-    private Integer defaultChannelNo(Integer channelNo) {
-        return channelNo == null ? 1 : channelNo;
+    private Integer defaultChannelNo(Integer channelNo, TDevice device) {
+        if (channelNo != null && channelNo > 0) {
+            return channelNo;
+        }
+        if (device != null && device.getChannelNo() != null && device.getChannelNo() > 0) {
+            return device.getChannelNo();
+        }
+        return 1;
     }
 }

--
Gitblit v1.7.1