更新 MonitorService.java

pull/1/head
wangsiyuan 2023-12-09 11:24:18 +08:00
parent ff590d8c05
commit 31f4d13a7a
1 changed files with 17 additions and 7 deletions

View File

@ -33,8 +33,16 @@ public class MonitorService {
@Scheduled(fixedDelay = 480000) @Scheduled(fixedDelay = 480000)
public void monitorOnlineDevices() { public void monitorOnlineDevices() {
List<DeviceInfoDAO> devices = getAllDevices(); List<DeviceInfoDAO> devices = getAllDevices();
if (devices.isEmpty()) {
// 没有找到数据的处理逻辑
logger.info("no data was queried.");
}
for (DeviceInfoDAO device : devices) { for (DeviceInfoDAO device : devices) {
try { try {
if (device.getIsMonitored() != 1){
logger.info("device is not monitored ,device SN: {}",device.getSN());
continue;
}
long currentTimeMillis = System.currentTimeMillis(); long currentTimeMillis = System.currentTimeMillis();
if (currentTimeMillis - device.getLastOnlineTime() > device.getTimeOutPeriod()) { if (currentTimeMillis - device.getLastOnlineTime() > device.getTimeOutPeriod()) {
updateStatus(device, 0); // 设备离线 updateStatus(device, 0); // 设备离线
@ -43,7 +51,7 @@ public class MonitorService {
updateStatus(device, 1); // 设备在线 updateStatus(device, 1); // 设备在线
} }
} catch (Exception e) { } catch (Exception e) {
logger.error("Error processing device with ID " + device.getAndroidId(), e); logger.error("Error processing device with SN " + device.getSN(), e);
} }
} }
} }
@ -90,9 +98,11 @@ public class MonitorService {
textCard.setTitle("设备掉线通知"); textCard.setTitle("设备掉线通知");
String formattedCurrentTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); String formattedCurrentTime = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
textCard.setDescription("<div class='gray'>设备信息</div>" + textCard.setDescription("<div class='gray'>设备信息</div>" +
"<div class='highlight'>设备id: " + deviceInfoDAO.getAndroidId() + "</div>" + "<div class='highlight'>品牌: " + deviceInfoDAO.getDeviceBrand() + "</div>" +
"<div class='highlight'>设备型号: " + deviceInfoDAO.getDeviceModel() + "</div>" + "<div class='highlight'>设备型号: " + deviceInfoDAO.getDeviceModel() + "</div>" +
"<div class='highlight'>检测到掉线时间: " + formattedCurrentTime + "</div>"+ "<div class='highlight'>安卓版本: " + deviceInfoDAO.getAndroidVersion() + "</div>" +
"<div class='highlight'>SN: " + deviceInfoDAO.getSN() + "</div>" +
"<div class='highlight'>监测到掉线时间: " + formattedCurrentTime + "</div>" +
"检测到设备已掉线,请及时查看设备状态."); "检测到设备已掉线,请及时查看设备状态.");
textCard.setUrl("https://kimgo.cn"); textCard.setUrl("https://kimgo.cn");
// 将TextCard对象设置到TextCardMessage中 // 将TextCard对象设置到TextCardMessage中
@ -105,17 +115,17 @@ public class MonitorService {
private void updateStatus(DeviceInfoDAO device, int status) { private void updateStatus(DeviceInfoDAO device, int status) {
try { try {
UpdateWrapper<DeviceInfoDAO> updateWrapper = new UpdateWrapper<>(); UpdateWrapper<DeviceInfoDAO> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("android_id", device.getAndroidId()); updateWrapper.eq("SN", device.getSN());
updateWrapper.set("status", status); updateWrapper.set("status", status);
int result = deviceInfoDAOMapper.update(null, updateWrapper); int result = deviceInfoDAOMapper.update(null, updateWrapper);
if (result > 0) { if (result > 0) {
logger.debug("Update successful for device ID: " + device.getAndroidId()); logger.debug("Update successful for SN: " + device.getSN());
} else { } else {
logger.warn("Update failed: No rows affected for device ID: " + device.getAndroidId()); logger.warn("Update failed: No rows affected for SN: " + device.getSN());
} }
} catch (Exception e) { } catch (Exception e) {
logger.error("Error updating status for device ID: " + device.getAndroidId(), e); logger.error("Error updating status for SN: " + device.getSN(), e);
} }
} }
} }