From fb1022ad98daf60acb54ed21dd44c55818562fe0 Mon Sep 17 00:00:00 2001 From: wangsiyuan <2392948297@qq.com> Date: Sat, 9 Dec 2023 14:11:54 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20HeartbeatController.ja?= =?UTF-8?q?va?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/kimgo/wepush/controller/HeartbeatController.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/com/kimgo/wepush/controller/HeartbeatController.java b/src/main/java/com/kimgo/wepush/controller/HeartbeatController.java index 05c1515..86cc75e 100644 --- a/src/main/java/com/kimgo/wepush/controller/HeartbeatController.java +++ b/src/main/java/com/kimgo/wepush/controller/HeartbeatController.java @@ -5,6 +5,8 @@ import com.kimgo.wepush.model.DeviceInfo; import com.kimgo.wepush.response.ServerResponseEntity; import com.kimgo.wepush.service.HeartBeatService; import jakarta.validation.Valid; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -15,6 +17,7 @@ import org.springframework.web.bind.annotation.RestController; public class HeartbeatController { @Autowired private HeartBeatService heartBeatService; + private final Logger logger = LoggerFactory.getLogger(CallerController.class); @PostMapping("/heartbeat") public ServerResponseEntity receiveHeartbeat(@RequestHeader("accessToken") String accessToken, @@ -25,6 +28,7 @@ public class HeartbeatController { return ServerResponseEntity.fail("accessToken cannot be empty."); } if (deviceInfo == null || deviceInfo.hasInvalidFields()){ + logger.info("DeviceInfo: {}",deviceInfo.toString()); return ServerResponseEntity.fail("json body value error."); } return heartBeatService.handleHeartbeatSignal(accessToken,deviceInfo); From ceaf3ac24d5bd60b5effb205bc7d6b0b97125f8f Mon Sep 17 00:00:00 2001 From: wangsiyuan <2392948297@qq.com> Date: Sat, 9 Dec 2023 14:11:57 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20DeviceInfoDAO.java?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/kimgo/wepush/model/DeviceInfoDAO.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/kimgo/wepush/model/DeviceInfoDAO.java b/src/main/java/com/kimgo/wepush/model/DeviceInfoDAO.java index 97ccb8f..4e49afc 100644 --- a/src/main/java/com/kimgo/wepush/model/DeviceInfoDAO.java +++ b/src/main/java/com/kimgo/wepush/model/DeviceInfoDAO.java @@ -12,6 +12,7 @@ public class DeviceInfoDAO { @TableId(type = IdType.AUTO) private Integer id; private int isMonitored; + //设备超时时间,单位秒 private long timeOutPeriod; private String deviceBrand; private String androidVersion; From ae889a2447803753b24f0ff0ae206bc538f1c5ca Mon Sep 17 00:00:00 2001 From: wangsiyuan <2392948297@qq.com> Date: Sat, 9 Dec 2023 14:12:01 +0800 Subject: [PATCH 3/5] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20HeartBeatService.java?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/kimgo/wepush/service/HeartBeatService.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/kimgo/wepush/service/HeartBeatService.java b/src/main/java/com/kimgo/wepush/service/HeartBeatService.java index 8957eed..2c7664e 100644 --- a/src/main/java/com/kimgo/wepush/service/HeartBeatService.java +++ b/src/main/java/com/kimgo/wepush/service/HeartBeatService.java @@ -52,7 +52,7 @@ public class HeartBeatService { UpdateWrapper updateWrapper = new UpdateWrapper<>(); updateWrapper.eq("sn", deviceInfo.getSN()); - updateWrapper.set("last_online_time", currentTimeMillis); // 设置新的 accessToken + updateWrapper.set("last_online_time", currentTimeMillis); int result = deviceInfoDAOMapper.update(null, updateWrapper); if (result > 0) { @@ -86,11 +86,11 @@ public class HeartBeatService { try { DeviceInfoDAO deviceInfoDAO = deviceInfoDAOMapper.selectOne(queryWrapper); if (deviceInfoDAO != null) { - logger.info("Data is queried in the database based on the device id"); + logger.info("Data is queried in the database based on the SN"); return deviceInfoDAO; } } catch (Exception e) { - logger.error("Error querying device info by android ID", e); + logger.error("Error querying device info by SN", e); } return null; } From 8772a041f337f91228189ff740e5c7b202ab088b Mon Sep 17 00:00:00 2001 From: wangsiyuan <2392948297@qq.com> Date: Sat, 9 Dec 2023 14:12:07 +0800 Subject: [PATCH 4/5] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20MonitorService.java?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/kimgo/wepush/service/MonitorService.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/kimgo/wepush/service/MonitorService.java b/src/main/java/com/kimgo/wepush/service/MonitorService.java index 89a6cb6..1a0ff70 100644 --- a/src/main/java/com/kimgo/wepush/service/MonitorService.java +++ b/src/main/java/com/kimgo/wepush/service/MonitorService.java @@ -44,11 +44,17 @@ public class MonitorService { continue; } long currentTimeMillis = System.currentTimeMillis(); - if (currentTimeMillis - device.getLastOnlineTime() > device.getTimeOutPeriod()) { + long timeDifferenceMillis = currentTimeMillis - device.getLastOnlineTime(); + long timeDifferenceSeconds = timeDifferenceMillis / 1000; + if (timeDifferenceSeconds > device.getTimeOutPeriod()) { + logger.info("currentTimeMillis: {},device LastOnlineTime: {},时间差: {},设备超时时间: {}",currentTimeMillis, + device.getLastOnlineTime(),timeDifferenceSeconds,device.getTimeOutPeriod()); updateStatus(device, 0); // 设备离线 + logger.info("Update the device status to offline."); sendNotification(device); } else { updateStatus(device, 1); // 设备在线 + logger.info("update the device status to online."); } } catch (Exception e) { logger.error("Error processing device with SN " + device.getSN(), e); From d95a725934d13e75b5e73d71c70482b13ae1f16a Mon Sep 17 00:00:00 2001 From: wangsiyuan <2392948297@qq.com> Date: Sat, 9 Dec 2023 14:12:14 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20HeartBeatServiceTest.j?= =?UTF-8?q?ava?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/kimgo/wepush/service/HeartBeatServiceTest.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/test/java/com/kimgo/wepush/service/HeartBeatServiceTest.java b/src/test/java/com/kimgo/wepush/service/HeartBeatServiceTest.java index 0cdd908..f296e75 100644 --- a/src/test/java/com/kimgo/wepush/service/HeartBeatServiceTest.java +++ b/src/test/java/com/kimgo/wepush/service/HeartBeatServiceTest.java @@ -15,8 +15,6 @@ class HeartBeatServiceTest { void updateClientStatus() { DeviceInfo deviceInfo = new DeviceInfo(); deviceInfo.setDeviceModel("Model B"); - deviceInfo.setSerialNumber("SN1234567891"); - deviceInfo.setAndroidId("android_id_2"); heartBeatService.updateClientStatus(deviceInfo); } @@ -24,8 +22,6 @@ class HeartBeatServiceTest { void addDeviceInfo() { DeviceInfo deviceInfo = new DeviceInfo(); deviceInfo.setDeviceModel("Model C"); - deviceInfo.setSerialNumber("SN1234567899"); - deviceInfo.setAndroidId("dadwdwfcev"); heartBeatService.addDeviceInfo(deviceInfo); } } \ No newline at end of file