|
@ -30,12 +30,16 @@ import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.stylefeng.guns.core.context.constant.ConstantContextHolder;
|
|
|
import cn.stylefeng.guns.core.context.login.LoginContextHolder;
|
|
|
import cn.stylefeng.guns.core.exception.DemoException;
|
|
|
import cn.stylefeng.guns.core.factory.PageFactory;
|
|
|
import cn.stylefeng.guns.core.pojo.login.SysLoginUser;
|
|
|
import cn.stylefeng.guns.core.pojo.page.PageResult;
|
|
|
import cn.stylefeng.guns.core.util.PageUtil;
|
|
|
import cn.stylefeng.guns.sys.core.cache.UserCache;
|
|
|
import cn.stylefeng.guns.sys.core.log.LogManager;
|
|
|
import cn.stylefeng.guns.sys.modular.monitor.param.SysOnlineUserParam;
|
|
|
import cn.stylefeng.guns.sys.modular.monitor.result.SysOnlineUserResult;
|
|
|
import cn.stylefeng.guns.sys.modular.monitor.service.SysOnlineUserService;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
@ -57,19 +61,23 @@ public class SysOnlineUserServiceImpl implements SysOnlineUserService {
|
|
|
private UserCache userCache;
|
|
|
|
|
|
@Override
|
|
|
public List<SysOnlineUserResult> list(SysOnlineUserParam sysOnlineUserParam) {
|
|
|
List<SysOnlineUserResult> resultList = CollectionUtil.newArrayList();
|
|
|
public PageResult<SysOnlineUserResult> list(SysOnlineUserParam sysOnlineUserParam) {
|
|
|
List<SysOnlineUserResult> tempList = CollectionUtil.newArrayList();
|
|
|
// 获取缓存中的所有用户
|
|
|
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);
|
|
|
resultList.add(sysOnlineUserResult);
|
|
|
tempList.add(sysOnlineUserResult);
|
|
|
}
|
|
|
return resultList.stream()
|
|
|
List<SysOnlineUserResult> listAll = tempList.stream()
|
|
|
.sorted(Comparator.comparing(SysOnlineUserResult::getLastLoginTime, Comparator.reverseOrder()))
|
|
|
.collect(Collectors.toList());
|
|
|
Page<SysOnlineUserResult> page = PageFactory.defaultPage();
|
|
|
page.setTotal(tempList.size());
|
|
|
List<SysOnlineUserResult> resultList = PageUtil.page(page, listAll);
|
|
|
return new PageResult<>(page, resultList);
|
|
|
}
|
|
|
|
|
|
@Override
|