SysUserOnlineServiceImpl.java 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. package com.ruoyi.system.service.impl;
  2. import com.ruoyi.common.core.domain.entity.SysUser;
  3. import com.ruoyi.common.core.domain.model.LoginUser;
  4. import com.ruoyi.common.utils.StringUtils;
  5. import com.ruoyi.system.domain.SysUserOnline;
  6. import com.ruoyi.system.service.ISysUserOnlineService;
  7. import com.ruoyi.system.service.ISysUserService;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.stereotype.Service;
  10. /**
  11. * 在线用户 服务层处理
  12. *
  13. * @author Lion Li
  14. */
  15. @Service
  16. public class SysUserOnlineServiceImpl implements ISysUserOnlineService {
  17. @Autowired
  18. private ISysUserService userService;
  19. /**
  20. * 通过登录地址查询信息
  21. *
  22. * @param ipaddr 登录地址
  23. * @param user 用户信息
  24. * @return 在线用户信息
  25. */
  26. @Override
  27. public SysUserOnline selectOnlineByIpaddr(String ipaddr, LoginUser user) {
  28. if (StringUtils.equals(ipaddr, user.getIpaddr())) {
  29. return loginUserToUserOnline(user);
  30. }
  31. return null;
  32. }
  33. /**
  34. * 通过用户名称查询信息
  35. *
  36. * @param userName 用户名称
  37. * @param user 用户信息
  38. * @return 在线用户信息
  39. */
  40. @Override
  41. public SysUserOnline selectOnlineByUserName(String userName, LoginUser user) {
  42. if (StringUtils.equals(userName, user.getUsername())) {
  43. return loginUserToUserOnline(user);
  44. }
  45. return null;
  46. }
  47. /**
  48. * 通过登录地址/用户名称查询信息
  49. *
  50. * @param ipaddr 登录地址
  51. * @param userName 用户名称
  52. * @param user 用户信息
  53. * @return 在线用户信息
  54. */
  55. @Override
  56. public SysUserOnline selectOnlineByInfo(String ipaddr, String userName, LoginUser user) {
  57. if (StringUtils.equals(ipaddr, user.getIpaddr()) && StringUtils.equals(userName, user.getUsername())) {
  58. return loginUserToUserOnline(user);
  59. }
  60. return null;
  61. }
  62. /**
  63. * 设置在线用户信息
  64. *
  65. * @param user 用户信息
  66. * @return 在线用户
  67. */
  68. @Override
  69. public SysUserOnline loginUserToUserOnline(LoginUser user) {
  70. if (StringUtils.isNull(user)) {
  71. return null;
  72. }
  73. SysUser sysUser = userService.selectUserById(user.getUserId());
  74. SysUserOnline sysUserOnline = new SysUserOnline();
  75. sysUserOnline.setTokenId(user.getToken());
  76. sysUserOnline.setUserName(user.getUsername());
  77. sysUserOnline.setIpaddr(user.getIpaddr());
  78. sysUserOnline.setLoginLocation(user.getLoginLocation());
  79. sysUserOnline.setBrowser(user.getBrowser());
  80. sysUserOnline.setOs(user.getOs());
  81. sysUserOnline.setLoginTime(user.getLoginTime());
  82. if (StringUtils.isNotNull(sysUser.getDept())) {
  83. sysUserOnline.setDeptName(sysUser.getDept().getDeptName());
  84. }
  85. return sysUserOnline;
  86. }
  87. }