liujie
2026-07-23 1fddea4f3d4e9415fe1f553c064d2daf953f3684
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;
    }
}