| | |
| | | import com.ruoyi.device.channel.domain.ArdChannel;
|
| | | import com.ruoyi.device.channel.service.IArdChannelService;
|
| | | import com.ruoyi.utils.sdk.common.GlobalVariable;
|
| | | import com.ruoyi.utils.sdk.hiksdk.service.IHikClientService;
|
| | | import com.ruoyi.media.domain.Vtdu;
|
| | | import com.ruoyi.media.service.IVtduService;
|
| | | import com.ruoyi.utils.sdk.hiksdk.service.impl.HikvisionSDK;
|
| | | import com.sun.jna.Pointer;
|
| | | import lombok.extern.slf4j.Slf4j;
|
| | |
|
| | | import java.util.Comparator;
|
| | | import java.util.List;
|
| | | import java.util.concurrent.PriorityBlockingQueue;
|
| | |
| | | public int invoke(int lUserID, int dwResult, HCNetSDK.NET_DVR_DEVICEINFO_V30 lpDeviceinfo, Pointer pUser) {
|
| | | IVtduService vtduService = SpringUtils.getBean(IVtduService.class);
|
| | | IArdChannelService ardChannelService = SpringUtils.getBean(IArdChannelService.class);
|
| | | IHikClientService hikClientService = SpringUtils.getBean(IHikClientService.class);
|
| | | HikvisionSDK hikClientService = SpringUtils.getBean(HikvisionSDK.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.debug(camera.getIp() + ":" + camera.getPort() + "登录成功");
|
| | | camera.setLoginId(lUserID);
|
| | | camera.setLoginId((long)lUserID);
|
| | | camera.setState("1");
|
| | | camera.setChanNum((int) lpDeviceinfo.byChanNum);
|
| | | camera.setStartDChan((int) lpDeviceinfo.byStartDChan);
|
| | | camera.setStartChan((int) lpDeviceinfo.byStartDChan);
|
| | | //获取最新通道
|
| | | List<ArdChannel> cameraChannelList = hikClientService.getCameraChannelList(camera);
|
| | | List<ArdChannel> cameraChannelList = hikClientService.getChannels(camera);
|
| | | if (cameraChannelList.size() > 0) {
|
| | | camera.setChanNum(cameraChannelList.size());
|
| | | //添加通道
|
| | | for (ArdChannel channel : cameraChannelList) {
|
| | | channel.setId(IdUtils.simpleUUID());
|
| | |
| | | } else {
|
| | | log.debug(camera.getIp() + ":" + camera.getPort() + "登录失败");
|
| | | camera.setChanNum(0);
|
| | | camera.setLoginId(-1);
|
| | | camera.setLoginId(-1l);
|
| | | camera.setState("0");
|
| | | }
|
| | | ardCamerasService.updateArdCameras(camera);
|