类 SysUserOnlineServiceImpl

java.lang.Object
com.baomidou.mybatisplus.extension.service.impl.ServiceImpl<SysUserOnlineMapper,SysUserOnline>
io.github.mangocrisp.spring.taybct.module.system.service.impl.SysUserOnlineServiceImpl
所有已实现的接口:
com.baomidou.mybatisplus.extension.service.IService<SysUserOnline>, ISysUserOnlineService, io.github.mangocrisp.spring.taybct.tool.core.bean.service.IBaseService<SysUserOnline>

@Service @AutoConfiguration public class SysUserOnlineServiceImpl extends com.baomidou.mybatisplus.extension.service.impl.ServiceImpl<SysUserOnlineMapper,SysUserOnline> implements ISysUserOnlineService
针对表【sys_user_online(在线用户)】的数据库操作Service实现
  • 字段概要

    字段
    修饰符和类型
    字段
    说明
    (专用程序包) ExecutorService
     
    private static final String
     
     
    protected org.springframework.jdbc.core.JdbcTemplate
     
     
    protected io.github.mangocrisp.spring.taybct.tool.core.message.IMessageSendService
     
    private String
     
    private static final String
     
    protected org.springframework.data.redis.core.RedisTemplate<Object,Object>
     
    protected io.github.mangocrisp.spring.taybct.tool.core.bean.ISecurityUtil
     
     
    protected io.github.mangocrisp.spring.taybct.tool.core.constant.ISysParamsObtainService
     
     
    protected SysRoleMapper
     
    protected SysTenantMapper
     
    protected SysUserMapper
     
     
    private static final String
     
    protected io.github.mangocrisp.spring.taybct.tool.core.mybatis.handle.ITenantSupplier
     

    从类继承的字段 com.baomidou.mybatisplus.extension.service.impl.ServiceImpl

    baseMapper, entityClass, log, mapperClass, typeArguments

    从接口继承的字段 com.baomidou.mybatisplus.extension.service.IService

    DEFAULT_BATCH_SIZE
  • 构造器概要

    构造器
    构造器
    说明
     
  • 方法概要

    修饰符和类型
    方法
    说明
    boolean
    chooseTenant(String tenantId)
    登录选择租户
    void
    清除缓存
    void
    清理超时的登录
    private com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<SysUserOnline>
    filterTenant(com.baomidou.mybatisplus.core.conditions.query.QueryWrapper<SysUserOnline> queryWrapper)
    过滤租户
    boolean
    force(String[] jti, String message)
    根据 jti 来删除来踢掉线
    boolean
    force(String message, String clientId, String... username)
    强制登出
    void
    forceAllClientUser(String username, String message)
    强退所有当前用户登录的客户端
    void
    forceAllClientUserById(String message, Long... userId)
    根据用户id强退所有当前用户登录的状态
    void
    forceAllClientUserByRole(String message, Long... roleId)
    根据角色 id 强退相关用户登录的所有客户端
    void
    forceAllClientUsers(String message, String clientId)
    强退所有和这个客户端有相关登录操作的用户
    private String
    获取到当前登录用户的 access token
    boolean
    login(com.alibaba.fastjson2.JSONObject token, boolean sendLoginLog)
    version 1.0.1
    登录成功之后,需要选择租户才给登录进入首页, 选择了租户之后,就需要再调用一下这个接口来记录是使用租户登录了。
    boolean
    logoff(com.alibaba.fastjson2.JSONObject token, String message)
    登出操作
    private void
    offline(com.alibaba.fastjson2.JSONObject jsonObject, String message)
    下线
    获取在线用户列表
    com.baomidou.mybatisplus.core.metadata.IPage<SysUserOnline>
    onlinePage(Map<String,Object> sqlQueryParams)
    在线分页
    void
    sendLogin(String client, String tenantId, String username, String module, String ip)
    发送登录日志

    从类继承的方法 com.baomidou.mybatisplus.extension.service.impl.ServiceImpl

    closeSqlSession, currentMapperClass, currentModelClass, executeBatch, executeBatch, executeBatch, getBaseMapper, getEntityClass, getMap, getObj, getOne, getOneOpt, getSqlSessionFactory, getSqlStatement, removeBatchByIds, removeBatchByIds, removeById, removeById, removeByIds, retBool, saveBatch, saveOrUpdate, saveOrUpdateBatch, sqlSessionBatch, sqlStatement, updateBatchById

    从类继承的方法 java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    从接口继承的方法 io.github.mangocrisp.spring.taybct.tool.core.bean.service.IBaseService

    customizeGetById, customizeList, customizeList, customizePage, customizePage, customizeQueryPage, customizeQueryPage, customizeQueryWrapper, customizeQueryWrapper, customizeRemoveById, customizeRemoveByIds, customizeSave, customizeSaveBatch, customizeUpdateBatchById, customizeUpdateById, mergeQueryExpansion, queryExpansion, removeExpansion, saveExpansion

    从接口继承的方法 com.baomidou.mybatisplus.extension.service.IService

    count, count, exists, getBaseMapper, getById, getEntityClass, getMap, getObj, getOne, getOne, getOneOpt, getOneOpt, getOptById, ktQuery, ktUpdate, lambdaQuery, lambdaQuery, lambdaUpdate, list, list, list, list, listByIds, listByMap, listMaps, listMaps, listMaps, listMaps, listObjs, listObjs, listObjs, listObjs, page, page, pageMaps, pageMaps, query, remove, removeBatchByIds, removeBatchByIds, removeBatchByIds, removeBatchByIds, removeById, removeById, removeById, removeByIds, removeByIds, removeByMap, save, saveBatch, saveBatch, saveOrUpdate, saveOrUpdate, saveOrUpdateBatch, saveOrUpdateBatch, update, update, update, updateBatchById, updateBatchById, updateById

    从接口继承的方法 io.github.mangocrisp.spring.taybct.module.system.service.ISysUserOnlineService

    login
  • 字段详细资料

    • redisTemplate

      @Autowired(required=false) protected org.springframework.data.redis.core.RedisTemplate<Object,Object> redisTemplate
    • sysOauth2ClientMapper

      @Autowired(required=false) protected SysOauth2ClientMapper sysOauth2ClientMapper
    • messageSendService

      @Autowired(required=false) protected io.github.mangocrisp.spring.taybct.tool.core.message.IMessageSendService messageSendService
    • sysUserMapper

      @Autowired(required=false) protected SysUserMapper sysUserMapper
    • sysUserRoleMapper

      @Autowired(required=false) protected SysUserRoleMapper sysUserRoleMapper
    • tenantSupplier

      @Autowired(required=false) protected io.github.mangocrisp.spring.taybct.tool.core.mybatis.handle.ITenantSupplier tenantSupplier
    • sysTenantMapper

      @Autowired(required=false) protected SysTenantMapper sysTenantMapper
    • sysRoleMapper

      @Autowired(required=false) protected SysRoleMapper sysRoleMapper
    • sysParamsService

      @Autowired(required=false) protected ISysParamsService sysParamsService
    • sysParamsObtainService

      @Autowired(required=false) protected io.github.mangocrisp.spring.taybct.tool.core.constant.ISysParamsObtainService sysParamsObtainService
    • securityUtil

      @Autowired(required=false) protected io.github.mangocrisp.spring.taybct.tool.core.bean.ISecurityUtil securityUtil
    • jdbcTemplate

      @Autowired(required=false) protected org.springframework.jdbc.core.JdbcTemplate jdbcTemplate
    • TABLE_NAME

      private static final String TABLE_NAME
      另请参阅:
    • PK_FILTER

      private static final String PK_FILTER
      另请参阅:
    • DELETE_OAUTH2_AUTHORIZATION_SQL

      private static final String DELETE_OAUTH2_AUTHORIZATION_SQL
      另请参阅:
    • loginCacheClear

      @Nullable @Autowired(required=false) protected ILoginCacheClear loginCacheClear
    • forceAllClientUserByRole

      @Nullable @Autowired(required=false) protected IForceAllClientUserByRole forceAllClientUserByRole
    • module

      @Value("${spring.application.name}") private String module
    • cachedThreadPool

      ExecutorService cachedThreadPool
  • 构造器详细资料

    • SysUserOnlineServiceImpl

      public SysUserOnlineServiceImpl()
  • 方法详细资料

    • chooseTenant

      public boolean chooseTenant(String tenantId)
      从接口复制的说明: ISysUserOnlineService
      登录选择租户
      指定者:
      chooseTenant 在接口中 ISysUserOnlineService
      参数:
      tenantId - 租户 id
      返回:
      boolean
    • getAccessTokenValue

      private String getAccessTokenValue()
      获取到当前登录用户的 access token
    • login

      public boolean login(com.alibaba.fastjson2.JSONObject token, boolean sendLoginLog)
      从接口复制的说明: ISysUserOnlineService
      version 1.0.1
      登录成功之后,需要选择租户才给登录进入首页, 选择了租户之后,就需要再调用一下这个接口来记录是使用租户登录了。
      选择租户的时候,会把 jti 和 tenant id 作为 kv 存入 redis,在网关 做过滤的时候使用 jti 查询到 tenant id ,然后存入到 Payload 里面,然后就可以使用 SecurityUtil#getTenantId() 去获取这个 tenant id 了,如果没有在 redis 里面获取到 tenant id,就使用默认的 租户 id

      登录成功后记录操作

      指定者:
      login 在接口中 ISysUserOnlineService
      参数:
      token - 用户登录信息
      sendLoginLog - 是否发送登录日志
      返回:
      boolean
    • sendLogin

      public void sendLogin(String client, String tenantId, String username, String module, String ip)
      发送登录日志
      参数:
      client - 客户端
      tenantId - 租户
      username - 用户名
      module - 模块
    • logoff

      public boolean logoff(com.alibaba.fastjson2.JSONObject token, String message)
      从接口复制的说明: ISysUserOnlineService
      登出操作
      指定者:
      logoff 在接口中 ISysUserOnlineService
      参数:
      token - 用户登录信息
      message - 被登出的原因
      返回:
      boolean
    • onlineList

      public List<SysUserOnline> onlineList()
      从接口复制的说明: ISysUserOnlineService
      获取在线用户列表
      指定者:
      onlineList 在接口中 ISysUserOnlineService
      返回:
      List<SysUserOnline>
    • filterTenant

      private com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper<SysUserOnline> filterTenant(com.baomidou.mybatisplus.core.conditions.query.QueryWrapper<SysUserOnline> queryWrapper)
      过滤租户
    • onlinePage

      public com.baomidou.mybatisplus.core.metadata.IPage<SysUserOnline> onlinePage(Map<String,Object> sqlQueryParams)
      从接口复制的说明: ISysUserOnlineService
      在线分页
      指定者:
      onlinePage 在接口中 ISysUserOnlineService
      参数:
      sqlQueryParams - 分页信息
      返回:
      <E extends IPage<SysUserOnline>> E
    • offline

      private void offline(com.alibaba.fastjson2.JSONObject jsonObject, String message)
      下线
    • force

      public boolean force(String message, String clientId, String... username)
      从接口复制的说明: ISysUserOnlineService
      强制登出
      指定者:
      force 在接口中 ISysUserOnlineService
      参数:
      message - 被登出的原因
      clientId - 客户端标识
      username - 用户名
      返回:
      是否操作成功
    • force

      public boolean force(String[] jti, String message)
      从接口复制的说明: ISysUserOnlineService
      根据 jti 来删除来踢掉线
      指定者:
      force 在接口中 ISysUserOnlineService
      参数:
      jti - JWT Token id
      message - 被登出的原因
      返回:
      boolean
    • forceAllClientUsers

      public void forceAllClientUsers(String message, String clientId)
      从接口复制的说明: ISysUserOnlineService
      强退所有和这个客户端有相关登录操作的用户
      指定者:
      forceAllClientUsers 在接口中 ISysUserOnlineService
      参数:
      message - 被登出的原因
      clientId - 客户端 id
    • forceAllClientUserByRole

      public void forceAllClientUserByRole(String message, Long... roleId)
      从接口复制的说明: ISysUserOnlineService
      根据角色 id 强退相关用户登录的所有客户端
      指定者:
      forceAllClientUserByRole 在接口中 ISysUserOnlineService
      参数:
      message - 被登出的原因
      roleId - 角色 id
    • forceAllClientUserById

      public void forceAllClientUserById(String message, Long... userId)
      从接口复制的说明: ISysUserOnlineService
      根据用户id强退所有当前用户登录的状态
      指定者:
      forceAllClientUserById 在接口中 ISysUserOnlineService
      参数:
      message - 被登出的原因
      userId - 用户 id
    • forceAllClientUser

      public void forceAllClientUser(String username, String message)
      强退所有当前用户登录的客户端
      指定者:
      forceAllClientUser 在接口中 ISysUserOnlineService
      参数:
      username - 用户 id
      message - 被登出的原因
    • clearCache

      public void clearCache(Collection<SysUser> entityList)
      清除缓存
      指定者:
      clearCache 在接口中 ISysUserOnlineService
      参数:
      entityList - 用户集合
    • clearExpires

      public void clearExpires()
      从接口复制的说明: ISysUserOnlineService
      清理超时的登录
      指定者:
      clearExpires 在接口中 ISysUserOnlineService