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