You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
96 lines
2.8 KiB
96 lines
2.8 KiB
package com.ruoyi.system.service.impl; |
|
|
|
import org.springframework.stereotype.Service; |
|
import com.ruoyi.common.core.domain.model.LoginUser; |
|
import com.ruoyi.common.utils.StringUtils; |
|
import com.ruoyi.system.domain.SysUserOnline; |
|
import com.ruoyi.system.service.ISysUserOnlineService; |
|
|
|
/** |
|
* 在线用户 服务层处理 |
|
* |
|
* @author ruoyi |
|
*/ |
|
@Service |
|
public class SysUserOnlineServiceImpl implements ISysUserOnlineService |
|
{ |
|
/** |
|
* 通过登录地址查询信息 |
|
* |
|
* @param ipaddr 登录地址 |
|
* @param user 用户信息 |
|
* @return 在线用户信息 |
|
*/ |
|
@Override |
|
public SysUserOnline selectOnlineByIpaddr(String ipaddr, LoginUser user) |
|
{ |
|
if (StringUtils.equals(ipaddr, user.getIpaddr())) |
|
{ |
|
return loginUserToUserOnline(user); |
|
} |
|
return null; |
|
} |
|
|
|
/** |
|
* 通过用户名称查询信息 |
|
* |
|
* @param userName 用户名称 |
|
* @param user 用户信息 |
|
* @return 在线用户信息 |
|
*/ |
|
@Override |
|
public SysUserOnline selectOnlineByUserName(String userName, LoginUser user) |
|
{ |
|
if (StringUtils.equals(userName, user.getUsername())) |
|
{ |
|
return loginUserToUserOnline(user); |
|
} |
|
return null; |
|
} |
|
|
|
/** |
|
* 通过登录地址/用户名称查询信息 |
|
* |
|
* @param ipaddr 登录地址 |
|
* @param userName 用户名称 |
|
* @param user 用户信息 |
|
* @return 在线用户信息 |
|
*/ |
|
@Override |
|
public SysUserOnline selectOnlineByInfo(String ipaddr, String userName, LoginUser user) |
|
{ |
|
if (StringUtils.equals(ipaddr, user.getIpaddr()) && StringUtils.equals(userName, user.getUsername())) |
|
{ |
|
return loginUserToUserOnline(user); |
|
} |
|
return null; |
|
} |
|
|
|
/** |
|
* 设置在线用户信息 |
|
* |
|
* @param user 用户信息 |
|
* @return 在线用户 |
|
*/ |
|
@Override |
|
public SysUserOnline loginUserToUserOnline(LoginUser user) |
|
{ |
|
if (StringUtils.isNull(user) || StringUtils.isNull(user.getUser())) |
|
{ |
|
return null; |
|
} |
|
SysUserOnline sysUserOnline = new SysUserOnline(); |
|
sysUserOnline.setTokenId(user.getToken()); |
|
sysUserOnline.setUserName(user.getUsername()); |
|
sysUserOnline.setIpaddr(user.getIpaddr()); |
|
sysUserOnline.setLoginLocation(user.getLoginLocation()); |
|
sysUserOnline.setBrowser(user.getBrowser()); |
|
sysUserOnline.setOs(user.getOs()); |
|
sysUserOnline.setLoginTime(user.getLoginTime()); |
|
if (StringUtils.isNotNull(user.getUser().getDept())) |
|
{ |
|
sysUserOnline.setDeptName(user.getUser().getDept().getDeptName()); |
|
} |
|
return sysUserOnline; |
|
} |
|
}
|
|
|