|
@ -26,8 +26,6 @@ package cn.stylefeng.guns.sys.modular.monitor.service.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.date.DateTime;
|
|
|
import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.stylefeng.guns.core.context.constant.ConstantContextHolder;
|
|
|
import cn.stylefeng.guns.core.context.login.LoginContextHolder;
|
|
@ -41,8 +39,10 @@ import cn.stylefeng.guns.sys.modular.monitor.service.SysOnlineUserService;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import java.util.Comparator;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
* 系统组织机构service接口实现类
|
|
@ -59,28 +59,17 @@ public class SysOnlineUserServiceImpl implements SysOnlineUserService {
|
|
|
@Override
|
|
|
public List<SysOnlineUserResult> list(SysOnlineUserParam sysOnlineUserParam) {
|
|
|
List<SysOnlineUserResult> resultList = CollectionUtil.newArrayList();
|
|
|
//定义现在时间
|
|
|
DateTime now = DateTime.now();
|
|
|
// 获取缓存中的所有用户
|
|
|
Map<String, SysLoginUser> allKeyValues = userCache.getAllKeyValues();
|
|
|
for (Map.Entry<String, SysLoginUser> sysLoginUserEntry : allKeyValues.entrySet()) {
|
|
|
SysOnlineUserResult sysOnlineUserResult = new SysOnlineUserResult();
|
|
|
sysOnlineUserResult.setSessionId(sysLoginUserEntry.getKey());
|
|
|
BeanUtil.copyProperties(sysLoginUserEntry.getValue(), sysOnlineUserResult);
|
|
|
//获取登录日期
|
|
|
String lastLoginTime = sysOnlineUserResult.getLastLoginTime();
|
|
|
DateTime dateTime = DateUtil.parseDateTime(lastLoginTime);
|
|
|
//获取两个比较结果
|
|
|
int compare = DateUtil.compare(dateTime, now);
|
|
|
//如果时间小于等于当前时间
|
|
|
if(compare <= 0) {
|
|
|
//则将其设为当前时间
|
|
|
now = dateTime;
|
|
|
//将其放入
|
|
|
resultList.add(sysOnlineUserResult);
|
|
|
}
|
|
|
resultList.add(sysOnlineUserResult);
|
|
|
}
|
|
|
return resultList;
|
|
|
return resultList.stream()
|
|
|
.sorted(Comparator.comparing(SysOnlineUserResult::getLastLoginTime, Comparator.reverseOrder()))
|
|
|
.collect(Collectors.toList());
|
|
|
}
|
|
|
|
|
|
@Override
|