package com.ruoyi.quartz.task;
|
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
import com.ruoyi.device.camera.domain.ArdCameras;
|
import com.ruoyi.device.camera.domain.CameraCmd;
|
import com.ruoyi.device.camera.service.IArdCamerasService;
|
import com.ruoyi.device.hiksdk.service.IHikClientService;
|
import com.ruoyi.rongcloud.service.RongCloudService;
|
import com.ruoyi.system.service.ISysUserService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.stereotype.Component;
|
|
import javax.annotation.Resource;
|
import java.util.List;
|
|
/**
|
* @Description: 同步任务
|
* @ClassName: syncDeviceStateTask
|
* @Author: 刘苏义
|
* @Date: 2023年10月08日11:06:42
|
**/
|
@Component("SyncTask")
|
@Slf4j
|
public class SyncTask {
|
@Resource
|
ISysUserService sysUserService;
|
@Resource
|
RongCloudService rongCloudService;
|
@Resource
|
IArdCamerasService iArdCamerasService;
|
@Resource
|
IHikClientService iHikClientService;
|
|
/**
|
* 同步相机在线状态
|
* 刘苏义
|
* 2023/10/8 14:54:41
|
*/
|
public void cameraState() {
|
List<ArdCameras> ardCameras = iArdCamerasService.selectArdCamerasListNoDataScope(new ArdCameras());
|
for (ArdCameras camera : ardCameras) {
|
CameraCmd cmd = new CameraCmd();
|
cmd.setCameraId(camera.getId());
|
boolean onLineNew = iHikClientService.isOnLine(cmd);//相机实时状态
|
boolean onLineOld = "1".equals(camera.getState());//相机历史状态
|
//当状态发生变化时,更新实时状态
|
if (onLineNew != onLineOld) {
|
if (onLineNew) {
|
camera.setState("1");
|
} else {
|
camera.setState("0");
|
}
|
iArdCamerasService.updateArdCameras(camera);
|
}
|
}
|
}
|
|
/**
|
* 定时获取app用户在线状态
|
* 刘苏义
|
* 2023/8/9 9:17:48
|
*/
|
public void appUserState() {
|
try {
|
List<SysUser> SysUserList = sysUserService.selectAllAppUserList(new SysUser());
|
if (SysUserList.size() > 0) {
|
for (SysUser sysUser : SysUserList) {
|
String state = sysUser.getAppOnlineState();//获取当前用户的在线状态
|
Boolean online = rongCloudService.checkOnline(sysUser.getUserId());//从融云获取在线状态
|
if (state != null) {
|
Boolean appOnlineState = state.equals("1");
|
if (appOnlineState == online) {
|
continue;
|
}
|
}
|
sysUser.setAppOnlineState(online ? "1" : "0");
|
sysUserService.updateUserProfile(sysUser);
|
}
|
}
|
} catch (Exception ex) {
|
log.error("融云在线接口异常:" + ex.getMessage());
|
}
|
}
|
}
|