liusuyi
2024-10-10 38f29e38fcc668171dc05c53d40a36b895c86102
ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java
@@ -37,6 +37,7 @@
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.io.*;
import java.nio.file.Files;
@@ -80,6 +81,11 @@
    // 网络连接恢复
    private static HaveReConnect haveReConnect = new HaveReConnect();
    @PostConstruct
    public void initSdk() {
        log.info("初始化大华sdk");
        LoginModule.init(disConnect, haveReConnect);
    }
    /**
     * 登录
@@ -91,7 +97,6 @@
    @Override
    public AjaxResult login(ArdCameras camera) {
        try {
            LoginModule.init(disConnect, haveReConnect);
            NetSDKLib.NET_DEVICEINFO_Ex m_stDeviceInfo = new NetSDKLib.NET_DEVICEINFO_Ex();
            NetSDKLib.LLong loginId = LoginModule.login(camera.getIp(), camera.getPort(), camera.getUsername(), camera.getPassword(), m_stDeviceInfo);
            if (loginId.longValue() <= 0) {
@@ -101,7 +106,7 @@
                ardCamerasService.updateArdCameras(camera);
                //删除管理通道
                ardChannelService.deleteArdChannelByDeviceId(camera.getId());
                log.error("设备[" + camera.getIp() + ":" + camera.getPort() + "]登录失败:" + getErrorCodePrint());
                log.warn("设备[" + camera.getIp() + ":" + camera.getPort() + "]登录失败:" + getErrorCodePrint());
                return AjaxResult.warn(ErrorCode.getErrorCode(LoginModule.netsdk.CLIENT_GetLastError()));
            }
            log.debug("设备[" + camera.getIp() + ":" + camera.getPort() + "]登录成功:" + (int) loginId.longValue());
@@ -134,10 +139,9 @@
    }
    @Override
    @Async("loginExecutor")
    @Async("globalExecutor")
    public AjaxResult asyncLogin(ArdCameras camera) {
        try {
            LoginModule.init(disConnect, haveReConnect);
            NetSDKLib.NET_DEVICEINFO_Ex m_stDeviceInfo = new NetSDKLib.NET_DEVICEINFO_Ex();
            NetSDKLib.LLong loginId = LoginModule.login(camera.getIp(), camera.getPort(), camera.getUsername(), camera.getPassword(), m_stDeviceInfo);
            if (loginId.longValue() <= 0) {
@@ -147,7 +151,7 @@
                ardCamerasService.updateArdCameras(camera);
                //删除管理通道
                ardChannelService.deleteArdChannelByDeviceId(camera.getId());
                log.error("设备[" + camera.getIp() + ":" + camera.getPort() + "]登录失败:" + getErrorCodePrint());
                log.warn("设备[" + camera.getIp() + ":" + camera.getPort() + "]登录失败:" + getErrorCodePrint());
                return AjaxResult.warn(getErrorCodePrint());
            }
            log.debug("设备[" + camera.getIp() + ":" + camera.getPort() + "]登录成功:" + loginId);
@@ -631,6 +635,15 @@
                    GlobalVariable.previewMap.remove(cameraId);
                }
                log.debug("录像停止");
                //存入minio
                String BucketName = "record";
                String ObjectName = IdUtils.fastSimpleUUID() + ".mp4";
                FileInputStream stream = new FileInputStream(path);
                boolean b = MinioUtil.uploadObject(BucketName, ObjectName, stream, stream.available(), "video/MP4");
                if (b) {
                    url = MinioUtil.getBucketObjectUrl(BucketName, ObjectName);
                    log.debug("上传文件成功!" + url);
                }
            }
            return url;
        } catch (Exception ex) {