SysUserOnlineServiceImpl.java 2.6 KB

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