package com.jcdm.system.service.impl; import org.springframework.stereotype.Service; import com.jcdm.common.core.domain.model.LoginUser; import com.jcdm.common.utils.StringUtils; import com.jcdm.system.domain.SysUserOnline; import com.jcdm.system.service.ISysUserOnlineService; /** * 在线用户 服务层处理 * * @author jc */ @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; } }