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