UserManager.java 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package cc.mrbird.febs.auth.manager;
  2. import cc.mrbird.febs.auth.mapper.MenuMapper;
  3. import cc.mrbird.febs.auth.mapper.UserMapper;
  4. import cc.mrbird.febs.auth.mapper.UserRoleMapper;
  5. import cc.mrbird.febs.common.core.entity.constant.FebsConstant;
  6. import cc.mrbird.febs.common.core.entity.system.Menu;
  7. import cc.mrbird.febs.common.core.entity.system.SystemUser;
  8. import cc.mrbird.febs.common.core.entity.system.UserDataPermission;
  9. import cc.mrbird.febs.common.core.entity.system.UserRole;
  10. import com.baomidou.mybatisplus.core.toolkit.StringPool;
  11. import lombok.RequiredArgsConstructor;
  12. import org.springframework.stereotype.Service;
  13. import org.springframework.transaction.annotation.Propagation;
  14. import org.springframework.transaction.annotation.Transactional;
  15. import java.util.Date;
  16. import java.util.List;
  17. import java.util.stream.Collectors;
  18. /**
  19. * 用户业务逻辑
  20. *
  21. * @author MrBird
  22. */
  23. @Service
  24. @RequiredArgsConstructor
  25. @Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
  26. public class UserManager {
  27. private final UserMapper userMapper;
  28. private final MenuMapper menuMapper;
  29. private final UserRoleMapper userRoleMapper;
  30. /**
  31. * 通过用户名查询用户信息
  32. *
  33. * @param username 用户名
  34. * @return 用户
  35. */
  36. public SystemUser findByName(String username) {
  37. SystemUser user = userMapper.findByName(username);
  38. if (user != null) {
  39. List<UserDataPermission> permissions = userMapper.findUserDataPermissions(user.getUserId());
  40. String deptIds = permissions.stream().map(p -> String.valueOf(p.getDeptId())).collect(Collectors.joining(StringPool.COMMA));
  41. user.setDeptIds(deptIds);
  42. }
  43. return user;
  44. }
  45. /**
  46. * 通过用户名查询用户权限串
  47. *
  48. * @param username 用户名
  49. * @return 权限
  50. */
  51. public String findUserPermissions(String username) {
  52. List<Menu> userPermissions = menuMapper.findUserPermissions(username);
  53. return userPermissions.stream().map(Menu::getPerms).collect(Collectors.joining(","));
  54. }
  55. /**
  56. * 注册用户
  57. *
  58. * @param username username
  59. * @param password password
  60. * @return SystemUser SystemUser
  61. */
  62. @Transactional(rollbackFor = Exception.class)
  63. public SystemUser registUser(String username, String password) {
  64. SystemUser systemUser = new SystemUser();
  65. systemUser.setUsername(username);
  66. systemUser.setPassword(password);
  67. systemUser.setCreateTime(new Date());
  68. systemUser.setStatus(SystemUser.STATUS_VALID);
  69. systemUser.setSex(SystemUser.SEX_UNKNOW);
  70. systemUser.setAvatar(SystemUser.DEFAULT_AVATAR);
  71. systemUser.setDescription("注册用户");
  72. this.userMapper.insert(systemUser);
  73. UserRole userRole = new UserRole();
  74. userRole.setUserId(systemUser.getUserId());
  75. // 注册用户角色 ID
  76. userRole.setRoleId(FebsConstant.REGISTER_ROLE_ID);
  77. this.userRoleMapper.insert(userRole);
  78. return systemUser;
  79. }
  80. }