use of com.dimple.project.monitor.domain.UserOnline in project DimpleBlog by martin-chips.
the class UserOnlineController method list.
@PreAuthorize("@permissionService.hasPermission('monitor:online:list')")
@GetMapping("/list")
public TableDataInfo list(String ip, String userName) {
Collection<String> keys = redisCacheService.keys(Constants.LOGIN_TOKEN_KEY + "*");
List<UserOnline> userOnlineList = new ArrayList<>();
for (String key : keys) {
LoginUser user = redisCacheService.getCacheObject(key);
if (StringUtils.isNotEmpty(ip) && StringUtils.isNotEmpty(userName)) {
if (StringUtils.equals(ip, user.getIp()) && StringUtils.equals(userName, user.getUsername())) {
userOnlineList.add(userOnlineService.selectOnlineByInfo(ip, userName, user));
}
} else if (StringUtils.isNotEmpty(ip)) {
if (StringUtils.equals(ip, user.getIp())) {
userOnlineList.add(userOnlineService.selectOnlineByIpaddr(ip, user));
}
} else if (StringUtils.isNotEmpty(userName) && StringUtils.isNotNull(user.getUser())) {
if (StringUtils.equals(userName, user.getUsername())) {
userOnlineList.add(userOnlineService.selectOnlineByUserName(userName, user));
}
} else {
userOnlineList.add(userOnlineService.loginUserToUserOnline(user));
}
}
Collections.reverse(userOnlineList);
userOnlineList.removeAll(Collections.singleton(null));
return getDataTable(userOnlineList);
}
use of com.dimple.project.monitor.domain.UserOnline in project DimpleBlog by martin-chips.
the class UserOnlineServiceImpl method loginUserToUserOnline.
@Override
public UserOnline loginUserToUserOnline(LoginUser user) {
if (StringUtils.isNull(user) && StringUtils.isNull(user.getUser())) {
return null;
}
UserOnline userOnline = new UserOnline();
userOnline.setTokenId(user.getToken());
userOnline.setUserName(user.getUsername());
userOnline.setIpaddr(user.getIp());
userOnline.setLoginLocation(user.getLocation());
userOnline.setBrowser(user.getBrowser());
userOnline.setOs(user.getOs());
userOnline.setLoginTime(user.getLoginTime());
return userOnline;
}
Aggregations