|
|
|
@ -14,11 +14,12 @@ import org.springframework.data.redis.core.StringRedisTemplate;
|
|
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
import java.util.HashSet;
|
|
|
|
|
import java.util.Objects;
|
|
|
|
|
import java.util.Set;
|
|
|
|
|
|
|
|
|
|
import static cn.hutool.core.date.DatePattern.NORM_DATETIME_MINUTE_PATTERN;
|
|
|
|
|
import static cn.jlw.Interceptor.AuthenticationInterceptor.getUserIdByJwt;
|
|
|
|
|
import static com.ibeetl.admin.core.service.CorePlatformService.TOKEN_KEY;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
@ -51,6 +52,16 @@ public class OnLineRecordJob implements Job {
|
|
|
|
|
// 查询redis中现在还存在的session Key数量
|
|
|
|
|
Set<String> keys = CollUtil.emptyIfNull(stringRedisTemplate.keys(TOKEN_KEY + ":*"));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// session中保存用户id
|
|
|
|
|
HashSet<Object> sessionDistinctSet = new HashSet<>();
|
|
|
|
|
for (String key : keys) {
|
|
|
|
|
sessionDistinctSet.add(getUserIdByJwt(key));
|
|
|
|
|
}
|
|
|
|
|
// 在线人数
|
|
|
|
|
String sessionNum = sessionDistinctSet.size() + "";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 格式化到分钟
|
|
|
|
|
// 这里注意,需要控制5的倍数 00:15 00:30 00:45 00:00
|
|
|
|
|
Date nowDate = DateUtil.parse(DateUtil.now(), NORM_DATETIME_MINUTE_PATTERN);
|
|
|
|
@ -72,7 +83,7 @@ public class OnLineRecordJob implements Job {
|
|
|
|
|
// model.setMethod(ON_LINE_METHOD_NAME);
|
|
|
|
|
// model.setRequestUrl("在线人数统计");
|
|
|
|
|
// model.setParams("");
|
|
|
|
|
// model.setResult(keys.size() + "");
|
|
|
|
|
// model.setResult(sessionNum);
|
|
|
|
|
// model.setIp("127.0.0.1");
|
|
|
|
|
// model.setCreateTime(nowDate);
|
|
|
|
|
// model.setResultTime(nowDate);
|
|
|
|
@ -92,13 +103,13 @@ public class OnLineRecordJob implements Job {
|
|
|
|
|
model.setMethod(ON_LINE_METHOD_NAME);
|
|
|
|
|
model.setRequestUrl("在线人数统计");
|
|
|
|
|
model.setParams("");
|
|
|
|
|
model.setResult(keys.size() + "");
|
|
|
|
|
model.setResult(sessionNum);
|
|
|
|
|
model.setIp("127.0.0.1");
|
|
|
|
|
model.setCreateTime(nowDate);
|
|
|
|
|
model.setResultTime(nowDate);
|
|
|
|
|
sysLogService.insert(model);
|
|
|
|
|
}else {
|
|
|
|
|
getSysLog.setResult(keys.size() + "");
|
|
|
|
|
getSysLog.setResult(sessionNum);
|
|
|
|
|
sysLogDao.updateById(getSysLog);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|