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