|
@@ -67,6 +67,9 @@ public class WebGatewayImpl implements WebGateway {
|
|
private RedisUtil redisService;
|
|
private RedisUtil redisService;
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
|
|
+ private org.springframework.data.redis.core.RedisTemplate<String, Object> redisTemplate;
|
|
|
|
+
|
|
|
|
+ @Autowired
|
|
private AdminUserService adminUserService;
|
|
private AdminUserService adminUserService;
|
|
|
|
|
|
@Autowired
|
|
@Autowired
|
|
@@ -182,6 +185,39 @@ public class WebGatewayImpl implements WebGateway {
|
|
if (dto.getTenantId() != null) {
|
|
if (dto.getTenantId() != null) {
|
|
dto.setTenantName(tenantIdNameMap.get(dto.getTenantId()));
|
|
dto.setTenantName(tenantIdNameMap.get(dto.getTenantId()));
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ // 从Redis中获取目标最后离开时间
|
|
|
|
+ String redisKey = "hfln:device:" + dto.getClientId();
|
|
|
|
+ try {
|
|
|
|
+ // 检查key是否存在
|
|
|
|
+ if (redisService.hasKey(redisKey)) {
|
|
|
|
+ // 直接从Hash中获取lastTargetTime字段
|
|
|
|
+ Object lastTargetTimeObj = redisTemplate.opsForHash().get(redisKey, "lastTargetTime");
|
|
|
|
+
|
|
|
|
+ // 处理获取到的数据
|
|
|
|
+ if (lastTargetTimeObj != null) {
|
|
|
|
+ try {
|
|
|
|
+ //将时间戳转换为LocalDatetime
|
|
|
|
+ long lastTargetTimeMillis = Long.parseLong(lastTargetTimeObj.toString());
|
|
|
|
+ LocalDateTime lastTargetTime = java.time.Instant.ofEpochMilli(lastTargetTimeMillis)
|
|
|
|
+ .atZone(java.time.ZoneOffset.systemDefault())
|
|
|
|
+ .toLocalDateTime();
|
|
|
|
+
|
|
|
|
+ dto.setLastTargetTime(lastTargetTime);
|
|
|
|
+ log.debug("成功设置lastTargetTime,clientId: {}, time: {}", dto.getClientId(), lastTargetTime);
|
|
|
|
+ } catch (NumberFormatException e) {
|
|
|
|
+ log.warn("Redis中存储的时间戳格式错误,clientId: {}, value: {}", dto.getClientId(), lastTargetTimeObj);
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ log.debug("未找到lastTargetTime数据,clientId: {}", dto.getClientId());
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ log.debug("Redis中不存在key: {}", redisKey);
|
|
|
|
+ }
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ log.warn("获取Redis数据失败,clientId: {}, error: {}", dto.getClientId(), e.getMessage());
|
|
|
|
+ // 如果获取失败,不设置lastTargetTime,继续处理其他设备
|
|
|
|
+ }
|
|
});
|
|
});
|
|
|
|
|
|
return CopyUtils.copyPage(devInfoPage, deviceDTOList);
|
|
return CopyUtils.copyPage(devInfoPage, deviceDTOList);
|