From ce9ba63127821699be67f70004be2d45cfcb76eb Mon Sep 17 00:00:00 2001
From: liujie <1793218484@qq.com>
Date: 星期四, 23 七月 2026 11:13:00 +0800
Subject: [PATCH] 监控
---
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/EzvizOpenApiUtils.java | 18 +++++++++++++++---
1 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/EzvizOpenApiUtils.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/EzvizOpenApiUtils.java
index 81ed634..5113f14 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/EzvizOpenApiUtils.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/util/EzvizOpenApiUtils.java
@@ -24,7 +24,9 @@
private static final String SUCCESS_CODE = "200";
private static final String TOKEN_EXPIRED_CODE = "10002";
+ private static final String PTZ_CURRENT_OPERATION_FAILED_CODE = "60006";
private static final long TOKEN_EXPIRE_ADVANCE_MS = 5 * 60 * 1000L;
+ private static final Integer[] PTZ_STOP_DIRECTIONS = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
@Value("${ezviz.open.base-url:https://open.ys7.com}")
private String baseUrl;
@@ -119,7 +121,7 @@
form.put("speed", normalizePtzSpeed(speed));
JSONObject result = postFormWithToken("/api/lapp/device/ptz/start", form);
if (isCurrentOperationFailed(result)) {
- postFormWithToken("/api/lapp/device/ptz/stop", form);
+ stopAllPtzDirections(deviceSerial, channelNo);
result = postFormWithToken("/api/lapp/device/ptz/start", form);
}
return result;
@@ -174,8 +176,18 @@
private boolean isCurrentOperationFailed(JSONObject result) {
return result != null
&& !SUCCESS_CODE.equals(result.getString("code"))
- && StringUtils.hasText(result.getString("msg"))
- && result.getString("msg").contains("当前操作失败");
+ && (PTZ_CURRENT_OPERATION_FAILED_CODE.equals(result.getString("code"))
+ || StringUtils.hasText(result.getString("msg")) && result.getString("msg").contains("当前操作失败"));
+ }
+
+ private void stopAllPtzDirections(String deviceSerial, Integer channelNo) {
+ for (Integer direction : PTZ_STOP_DIRECTIONS) {
+ Map<String, Object> form = new LinkedHashMap<>();
+ form.put("deviceSerial", deviceSerial);
+ form.put("channelNo", channelNo == null ? 1 : channelNo);
+ form.put("direction", direction);
+ postFormWithToken("/api/lapp/device/ptz/stop", form);
+ }
}
/**
--
Gitblit v1.7.1