Search in sources :

Example 1 with UserOnline

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);
}
Also used : UserOnline(com.dimple.project.monitor.domain.UserOnline) ArrayList(java.util.ArrayList) LoginUser(com.dimple.framework.security.LoginUser) GetMapping(org.springframework.web.bind.annotation.GetMapping) PreAuthorize(org.springframework.security.access.prepost.PreAuthorize)

Example 2 with UserOnline

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;
}
Also used : UserOnline(com.dimple.project.monitor.domain.UserOnline)

Aggregations

UserOnline (com.dimple.project.monitor.domain.UserOnline)2 LoginUser (com.dimple.framework.security.LoginUser)1 ArrayList (java.util.ArrayList)1 PreAuthorize (org.springframework.security.access.prepost.PreAuthorize)1 GetMapping (org.springframework.web.bind.annotation.GetMapping)1