package com.ruoyi.system.service.impl;
|
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
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;
|
import com.ruoyi.system.service.ISysUserService;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
/**
|
* 在线用户 服务层处理
|
*
|
* @author Lion Li
|
*/
|
@Service
|
public class SysUserOnlineServiceImpl implements ISysUserOnlineService {
|
|
@Autowired
|
private ISysUserService userService;
|
|
/**
|
* 通过登录地址查询信息
|
*
|
* @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)) {
|
return null;
|
}
|
SysUser sysUser = userService.selectUserById(user.getUserId());
|
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(sysUser.getDept())) {
|
sysUserOnline.setDeptName(sysUser.getDept().getDeptName());
|
}
|
return sysUserOnline;
|
}
|
}
|