|
|
|
|
@ -54,6 +54,13 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
|
|
|
|
|
private final SysUserRoleMapper userRoleMapper;
|
|
|
|
|
private final SysRoleDeptMapper roleDeptMapper;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 分页查询角色列表
|
|
|
|
|
*
|
|
|
|
|
* @param role 查询条件
|
|
|
|
|
* @param pageQuery 分页参数
|
|
|
|
|
* @return 角色分页列表
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public TableDataInfo<SysRoleVo> selectPageRoleList(SysRoleBo role, PageQuery pageQuery) {
|
|
|
|
|
Page<SysRoleVo> page = baseMapper.selectPageRoleList(pageQuery.build(), this.buildQueryWrapper(role));
|
|
|
|
|
@ -61,7 +68,7 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据条件分页查询角色数据
|
|
|
|
|
* 根据条件查询角色数据
|
|
|
|
|
*
|
|
|
|
|
* @param role 角色信息
|
|
|
|
|
* @return 角色数据集合信息
|
|
|
|
|
@ -489,6 +496,17 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
|
|
|
|
|
return rows;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据角色ID清除该角色关联的所有在线用户的登录状态(踢出在线用户)
|
|
|
|
|
*
|
|
|
|
|
* <p>
|
|
|
|
|
* 先判断角色是否绑定用户,若无绑定则直接返回
|
|
|
|
|
* 然后遍历当前所有在线Token,查找拥有该角色的用户并强制登出
|
|
|
|
|
* 注意:在线用户量过大时,操作可能导致 Redis 阻塞,需谨慎调用
|
|
|
|
|
* </p>
|
|
|
|
|
*
|
|
|
|
|
* @param roleId 角色ID
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public void cleanOnlineUserByRole(Long roleId) {
|
|
|
|
|
// 如果角色未绑定用户 直接返回
|
|
|
|
|
@ -520,6 +538,16 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService {
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据用户ID列表清除对应在线用户的登录状态(踢出指定用户)
|
|
|
|
|
*
|
|
|
|
|
* <p>
|
|
|
|
|
* 遍历当前所有在线Token,匹配用户ID列表中的用户,强制登出
|
|
|
|
|
* 注意:在线用户量过大时,操作可能导致 Redis 阻塞,需谨慎调用
|
|
|
|
|
* </p>
|
|
|
|
|
*
|
|
|
|
|
* @param userIds 需要清除的用户ID列表
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public void cleanOnlineUser(List<Long> userIds) {
|
|
|
|
|
List<String> keys = StpUtil.searchTokenValue("", 0, -1, false);
|
|
|
|
|
|