package com.ruoyi.device.hiksdk.util.hikSdkUtil;
|
|
import com.ruoyi.common.utils.spring.SpringUtils;
|
import com.ruoyi.device.camera.domain.ArdCameras;
|
import com.ruoyi.device.camera.mapper.ArdCamerasMapper;
|
import com.ruoyi.device.hiksdk.common.GlobalVariable;
|
import com.sun.jna.Pointer;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Component;
|
|
import javax.annotation.Resource;
|
|
/**
|
* @Description: 异步登录回调
|
* @ClassName: FLoginResultCallBack
|
* @Author: 刘苏义
|
* @Date: 2023年06月12日13:34
|
* @Version: 1.0
|
**/
|
@Slf4j(topic = "hikSdk")
|
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) {
|
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() + "登录成功");
|
camera.setLoginId(lUserID);
|
camera.setChannel((int) lpDeviceinfo.byChanNum);
|
} else {
|
log.info(camera.getIp() + ":" + camera.getPort() + "登录失败");
|
camera.setChannel(0);
|
camera.setLoginId(-1);
|
}
|
ArdCamerasMapper ardCamerasMapper = SpringUtils.getBean(ArdCamerasMapper.class);
|
ardCamerasMapper.updateArdCameras(camera);
|
return 1;
|
}
|
}
|