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; 
 | 
    } 
 | 
} 
 |