From 8d2467a5c6647853df999261e1f5374f6a66da02 Mon Sep 17 00:00:00 2001 From: Administrator <1144154118@qq.com> Date: 星期六, 19 八月 2023 14:11:23 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ard-work/src/main/java/com/ruoyi/device/hiksdk/util/hikSdkUtil/LoginResultCallBack.java | 44 +++++++++++++++++++++++++++++++++++--------- 1 files changed, 35 insertions(+), 9 deletions(-) diff --git a/ard-work/src/main/java/com/ruoyi/device/hiksdk/util/hikSdkUtil/LoginResultCallBack.java b/ard-work/src/main/java/com/ruoyi/device/hiksdk/util/hikSdkUtil/LoginResultCallBack.java index b3c34c7..bbe9c52 100644 --- a/ard-work/src/main/java/com/ruoyi/device/hiksdk/util/hikSdkUtil/LoginResultCallBack.java +++ b/ard-work/src/main/java/com/ruoyi/device/hiksdk/util/hikSdkUtil/LoginResultCallBack.java @@ -1,14 +1,21 @@ package com.ruoyi.device.hiksdk.util.hikSdkUtil; +import com.ruoyi.alarm.global.domain.GuidePriorityQueue; +import com.ruoyi.alarm.global.domain.GuideTask; import com.ruoyi.common.utils.spring.SpringUtils; +import com.ruoyi.common.utils.uuid.IdUtils; import com.ruoyi.device.camera.domain.ArdCameras; -import com.ruoyi.device.camera.mapper.ArdCamerasMapper; +import com.ruoyi.device.camera.service.IArdCamerasService; +import com.ruoyi.device.channel.domain.ArdChannel; +import com.ruoyi.device.channel.service.IArdChannelService; import com.ruoyi.device.hiksdk.common.GlobalVariable; +import com.ruoyi.device.hiksdk.service.IHikClientService; import com.sun.jna.Pointer; import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; -import javax.annotation.Resource; +import java.util.Comparator; +import java.util.List; +import java.util.concurrent.PriorityBlockingQueue; /** * @Description: 寮傛鐧诲綍鍥炶皟 @@ -21,27 +28,46 @@ public class LoginResultCallBack implements HCNetSDK.FLoginResultCallBack { private ArdCameras camera; + public LoginResultCallBack(ArdCameras camera) { this.camera = camera; } @Override public int invoke(int lUserID, int dwResult, HCNetSDK.NET_DVR_DEVICEINFO_V30 lpDeviceinfo, Pointer pUser) { + IArdChannelService ardChannelService = SpringUtils.getBean(IArdChannelService.class); + IHikClientService hikClientService = SpringUtils.getBean(IHikClientService.class); + IArdCamerasService ardCamerasService = SpringUtils.getBean(IArdCamerasService.class); if (GlobalVariable.loginMap.containsKey(camera.getId())) { GlobalVariable.loginMap.remove(camera.getId()); } if (dwResult == 1) { GlobalVariable.loginMap.put(camera.getId(), lUserID); - log.info(camera.getIp() + ":" + camera.getPort() + "鐧诲綍鎴愬姛"); + log.debug(camera.getIp() + ":" + camera.getPort() + "鐧诲綍鎴愬姛"); camera.setLoginId(lUserID); - camera.setChannel((int) lpDeviceinfo.byChanNum); + camera.setChanNum((int) lpDeviceinfo.byChanNum); + camera.setStartDChan((int)lpDeviceinfo.byStartDChan); + + //鑾峰彇鏈�鏂伴�氶亾 + List<ArdChannel> cameraChannelList = hikClientService.getCameraChannelList(camera); + if(cameraChannelList.size()>0) { + //鍒犻櫎绠$悊閫氶亾 + ardChannelService.deleteArdChannelByDeviceId(camera.getId()); + for (ArdChannel channel : cameraChannelList) { + channel.setId(IdUtils.simpleUUID()); + ardChannelService.insertArdChannel(channel); + } + } + //鍒涘缓寮曞闃熷垪 + Comparator<GuideTask> comparator = GuidePriorityQueue.getComparator(); + PriorityBlockingQueue<GuideTask> priorityQueue = new PriorityBlockingQueue<>(1000, comparator); + GuidePriorityQueue.cameraQueueMap.put(camera.getId(), priorityQueue); } else { - log.info(camera.getIp() + ":" + camera.getPort() + "鐧诲綍澶辫触"); - camera.setChannel(0); + log.debug(camera.getIp() + ":" + camera.getPort() + "鐧诲綍澶辫触"); + camera.setChanNum(0); camera.setLoginId(-1); } - ArdCamerasMapper ardCamerasMapper = SpringUtils.getBean(ArdCamerasMapper.class); - ardCamerasMapper.updateArdCameras(camera); + ardCamerasService.updateArdCameras(camera); return 1; } } -- Gitblit v1.9.3