‘liusuyi’
2024-04-02 6a26b1d539576a556d0f8682af7ae4317de78c7a
ard-work/src/main/java/com/ruoyi/utils/sdk/dhsdk/service/impl/DahuaSDK.java
@@ -86,8 +86,8 @@
     * @return
     */
    @Override
    public boolean login(ArdCameras camera) {
    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);
@@ -98,7 +98,8 @@
            ardCamerasService.updateArdCameras(camera);
            //删除管理通道
            ardChannelService.deleteArdChannelByDeviceId(camera.getId());
            return false;
                log.error("设备[" + camera.getIp() + ":" + camera.getPort() + "]登录失败:" + getErrorCodePrint());
                return AjaxResult.error(ErrorCode.getErrorCode(LoginModule.netsdk.CLIENT_GetLastError()));
        }
        if (GlobalVariable.loginMap.containsKey(camera.getId())) {
            GlobalVariable.loginMap.remove(camera.getId());
@@ -161,8 +162,7 @@
        }
        //创建引导队列
        //创建引导队列
        if (camera.getCamAlarmGuideEnable() == 1) {
            if (camera.getCamAlarmGuideEnable() != null && camera.getCamAlarmGuideEnable() == 1) {
            if (!GuidePriorityQueue.cameraQueueMap.containsKey(camera.getId())) {
                Comparator<GuideTask> comparator = GuidePriorityQueue.getComparator();
                PriorityBlockingQueue<GuideTask> priorityQueue = new PriorityBlockingQueue<>(1000, comparator);
@@ -171,12 +171,17 @@
            //启动队列处理器
            queueHandler.process(camera.getId());
        }
        return true;
            return AjaxResult.success("登录成功");
        } catch (Exception ex) {
            log.error("登录异常:" + ex.getMessage());
            return AjaxResult.error("登录异常:" + ex.getMessage());
        }
    }
    @Override
    @Async("loginExecutor")
    public void asyncLogin(ArdCameras camera) {
    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);
@@ -187,7 +192,8 @@
            ardCamerasService.updateArdCameras(camera);
            //删除管理通道
            ardChannelService.deleteArdChannelByDeviceId(camera.getId());
            return;
                log.error("设备[" + camera.getIp() + ":" + camera.getPort() + "]登录失败:" + getErrorCodePrint());
                return AjaxResult.error(ErrorCode.getErrorCode(LoginModule.netsdk.CLIENT_GetLastError()));
        }
        if (GlobalVariable.loginMap.containsKey(camera.getId())) {
            GlobalVariable.loginMap.remove(camera.getId());
@@ -225,6 +231,11 @@
        addVtdu(camera);
        //创建引导队列
        createGuideQueue(camera);
            return AjaxResult.success("登录成功");
        } catch (Exception ex) {
            log.error("登录异常:" + ex.getMessage());
            return AjaxResult.error("登录异常:" + ex.getMessage());
        }
    }
    //添加到流媒体