Class SecurityContextService

java.lang.Object
com.elitesland.ystdms.sys.security.SecurityContextService

@Component public class SecurityContextService extends Object
扩展的 Security 上下文服务 提供用户相关的扩展信息(员工、公司、组织等)的查询能力 这些信息通过 Feign 客户端调用 newsys 对应接口获取,并缓存以提高性能
  • Constructor Details

  • Method Details

    • getCurrentEmployee

      public SysEmployeeDTO getCurrentEmployee()
      获取当前登录用户的员工信息
      Returns:
      员工信息,如果未登录或查询失败则返回 null
    • getEmployee

      public SysEmployeeDTO getEmployee(String username)
      获取指定用户的员工信息
      Parameters:
      username - 用户名
      Returns:
      员工信息,如果查询失败则返回 null
    • getEmployeeByUserId

      public SysEmployeeDTO getEmployeeByUserId(UUID userId)
      根据用户ID获取员工信息(支持 Feign 和本地查询复用)
    • getEmployeeByMobile

      public SysEmployeeDTO getEmployeeByMobile(String mobile)
      根据手机号获取员工信息
    • getCurrentOrg

      public SysOrgRespRpcDTO getCurrentOrg()
      获取当前用户所属的组织信息
      Returns:
      组织信息,如果未登录或查询失败则返回 null
    • getOrg

      public SysOrgRespRpcDTO getOrg(UUID orgId)
      获取指定ID的组织信息
      Parameters:
      orgId - 组织ID
      Returns:
      组织信息,如果查询失败则返回 null
    • getEmployeeOrgs

      public List<SysOrgRespRpcDTO> getEmployeeOrgs(UUID employeeId)
      获取员工的所有部门信息(通过 sys_employee_org 关联表查询) 注意:由于目前没有直接的Feign接口,这里返回空列表,需要后续实现
      Parameters:
      employeeId - 员工ID
      Returns:
      部门信息列表,如果查询失败则返回 null
    • getCurrentOu

      public List<SysOuDTO> getCurrentOu()
      获取当前用户所属的公司信息
      Returns:
      公司信息列表,如果未登录或查询失败则返回 null
    • getAllOu

      public List<SysOuDTO> getAllOu()
      获取所有公司信息
      Returns:
      公司信息列表,如果查询失败则返回 null
    • clearCache

      public void clearCache()
      清除缓存
    • clearUserCache

      public void clearUserCache(String username)
      清除指定用户的缓存
      Parameters:
      username - 用户名
    • getExternalUserFullInfo

      public ExternalUserFullInfoDTO getExternalUserFullInfo(String username)
      根据用户名获取外部用户完整信息(包含用户、员工、部门、角色) 用于外部系统 JWT 解析失败后,从内部系统获取用户信息
      Parameters:
      username - 用户名
      Returns:
      用户完整信息,如果查询失败则返回 null
    • getExternalUserFullInfoWithOrg

      public ExternalUserFullInfoDTO getExternalUserFullInfoWithOrg(String username)
      根据用户名获取用户完整信息,并将部门信息转换为 SysOrgRespRpcDTO 格式
      Parameters:
      username - 用户名
      Returns:
      用户完整信息,如果查询失败则返回 null