Class UserService

java.lang.Object
com.bytedesk.core.rbac.user.UserService

@Service public class UserService extends Object
  • Field Details

    • userRepository

      private final UserRepository userRepository
    • modelMapper

      private final org.modelmapper.ModelMapper modelMapper
    • roleRestService

      private final RoleRestService roleRestService
    • bytedeskProperties

      private final BytedeskProperties bytedeskProperties
    • passwordEncoder

      private final org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder passwordEncoder
    • uidUtils

      private final UidUtils uidUtils
    • entityManager

      private jakarta.persistence.EntityManager entityManager
    • organizationRepository

      private final OrganizationRepository organizationRepository
    • bytedeskEventPublisher

      private final BytedeskEventPublisher bytedeskEventPublisher
    • authService

      private final AuthService authService
    • tokenRestService

      private final TokenRestService tokenRestService
  • Constructor Details

    • UserService

      public UserService()
  • Method Details

    • register

      @Transactional @CacheEvict(value="user:exists",key="#request.username + \'-\' + #request.platform",condition="#request.username != null") @CacheEvict(value="user:exists",key="#request.mobile + \'-\' + #request.platform",condition="#request.mobile != null") @CacheEvict(value="user:exists",key="#request.email + \'-\' + #request.platform",condition="#request.email != null") public UserResponse register(UserRequest request)
    • update

      @Transactional public UserResponse update(UserRequest request)
    • changePassword

      @Transactional public UserResponse changePassword(UserRequest request)
    • adminChangePassword

      @Transactional public UserResponse adminChangePassword(UserRequest request)
    • changeEmail

      @Transactional public UserResponse changeEmail(UserRequest request)
    • changeMobile

      @Transactional public UserResponse changeMobile(UserRequest request)
    • createUserFromMember

      @Transactional public UserEntity createUserFromMember(UserRequest request)
    • ensureCurrentOrganization

      public UserEntity ensureCurrentOrganization(UserEntity user, String orgUid)
      确保 user 的 currentOrganization 指向 orgUid。 updateUserRoles 依赖 currentOrganization 来写入“组织维度”的角色关联。
    • updateUserFromMember

      public UserEntity updateUserFromMember(UserEntity user, MemberRequest request)
    • updateUserRoles

      @Transactional public UserEntity updateUserRoles(UserEntity user, Set<String> roleUids)
      更新用户在“当前组织(currentOrganization)”下的角色列表。 - 忽略空值 - 将废弃的 member 角色 uid 归一为 user 角色 uid - 强制确保包含 ROLE_USER
    • addRoleAgent

      public UserEntity addRoleAgent(UserEntity user)
    • removeRoleAgent

      public UserEntity removeRoleAgent(UserEntity user)
    • addRoleUser

      @Transactional public UserEntity addRoleUser(UserEntity user)
    • addRoleAdmin

      public UserEntity addRoleAdmin(UserEntity user)
    • removeRoleAdmin

      public UserEntity removeRoleAdmin(UserEntity user)
    • addRoleDeptAdmin

      public UserEntity addRoleDeptAdmin(UserEntity user)
    • removeRoleDeptAdmin

      public UserEntity removeRoleDeptAdmin(UserEntity user)
    • addRoleWorkgroupAdmin

      public UserEntity addRoleWorkgroupAdmin(UserEntity user)
    • removeRoleWorkgroupAdmin

      public UserEntity removeRoleWorkgroupAdmin(UserEntity user)
    • addRoleSuper

      @Transactional public UserEntity addRoleSuper(UserEntity user)
    • removeRoleSuper

      @Transactional public UserEntity removeRoleSuper(UserEntity user)
    • addRole

      @Transactional public UserEntity addRole(UserEntity user, String roleName)
    • removeRole

      public UserEntity removeRole(UserEntity user, String roleName)
    • findByEmailAndPlatform

      @Cacheable(value="user", key="#email + \'-\' + #platform", unless="#result == null") public Optional<UserEntity> findByEmailAndPlatform(String email, String platform)
    • findByMobileAndPlatform

      @Cacheable(value="user", key="#mobile + \'-\' + #platform", unless="#result == null") public Optional<UserEntity> findByMobileAndPlatform(String mobile, String platform)
    • findByUsernameAndPlatform

      @Cacheable(value="user", key="#username + \'-\' + #platform", unless="#result == null") public Optional<UserEntity> findByUsernameAndPlatform(String username, String platform)
    • findByUid

      public Optional<UserEntity> findByUid(String uid)
    • getSuper

      @Cacheable(value="admin", unless="#result == null") public Optional<UserEntity> getSuper()
    • existsByUsernameAndPlatform

      @Cacheable(value="user:exists", key="#username + \'-\' + #platform", unless="#result == null") public Boolean existsByUsernameAndPlatform(@NonNull String username, @NonNull String platform)
    • existsByMobileAndPlatform

      @Cacheable(value="user:exists", key="#mobile + \'-\' + #platform", unless="#result == null") public Boolean existsByMobileAndPlatform(@NonNull String mobile, @NonNull String platform)
    • existsByEmailAndPlatform

      @Cacheable(value="user:exists", key="#email + \'-\' + #platform", unless="#result == null") public Boolean existsByEmailAndPlatform(@NonNull String email, @NonNull String platform)
    • existsByUsernameAndMobileAndPlatform

      @Cacheable(value="user:exists", key="#username + \'-\' + #mobile + \'-\' + #platform", unless="#result == null") public Boolean existsByUsernameAndMobileAndPlatform(@NonNull String username, @NonNull String mobile, @NonNull String platform)
    • existsBySuperUser

      public Boolean existsBySuperUser()
    • save

      @Transactional @Caching(put={@CachePut(value="user",key="#user.username + \'-\' + #user.platform",unless="#user.username == null"),@CachePut(value="user",key="#user.mobile + \'-\' + #user.platform",unless="#user.mobile == null"),@CachePut(value="user",key="#user.email + \'-\' + #user.platform",unless="#user.email == null"),@CachePut(value="user",key="#user.uid",unless="#user.uid == null")},evict={@CacheEvict(value="user:exists",key="#user.username + \'-\' + #user.platform",condition="#user.username != null"),@CacheEvict(value="user:exists",key="#user.mobile + \'-\' + #user.platform",condition="#user.mobile != null"),@CacheEvict(value="user:exists",key="#user.email + \'-\' + #user.platform",condition="#user.email != null")}) public UserEntity save(@NonNull UserEntity user)
    • delete

      @CacheEvict(value="user",key="#user.username + \'-\' + #user.platform") @CacheEvict(value="user",key="#user.mobile + \'-\' + #user.platform") @CacheEvict(value="user",key="#user.email + \'-\' + #user.platform") @CacheEvict(value="user",key="#user.uid") @CacheEvict(value="user:exists",key="#user.username + \'-\' + #user.platform") @CacheEvict(value="user:exists",key="#user.mobile + \'-\' + #user.platform") @CacheEvict(value="user:exists",key="#user.email + \'-\' + #user.platform") public void delete(@NonNull UserEntity user)
    • logout

      public void logout(String accessToken)
    • createNickname

      public String createNickname()