first commit
This commit is contained in:
@ -2,6 +2,7 @@ package com.qiaoba.module.system.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.qiaoba.api.system.entity.SysUserRole;
|
||||
import com.qiaoba.auth.entity.dto.RoleDto;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
@ -24,24 +25,6 @@ public interface SysUserRoleMapper extends BaseMapper<SysUserRole> {
|
||||
*/
|
||||
List<String> selectRoleIdsByUserId(@Param("userId") String userId, @Param("status") String status);
|
||||
|
||||
/**
|
||||
* 通过userId查询所绑定的角色Key列表
|
||||
*
|
||||
* @param userId userId
|
||||
* @param status 状态
|
||||
* @return roleIds
|
||||
*/
|
||||
List<String> selectRoleKeysByUserId(@Param("userId") String userId, @Param("status") String status);
|
||||
|
||||
/**
|
||||
* 通过userId查询所绑定的角色Key列表
|
||||
*
|
||||
* @param userId userId
|
||||
* @param status 状态
|
||||
* @return roleIds
|
||||
*/
|
||||
List<String> selectRoleNamesByUserId(@Param("userId") String userId, @Param("status") String status);
|
||||
|
||||
/**
|
||||
* 批量取消角色所绑定的用户
|
||||
*
|
||||
@ -56,4 +39,13 @@ public interface SysUserRoleMapper extends BaseMapper<SysUserRole> {
|
||||
* @param userIds userIds
|
||||
*/
|
||||
void deleteByUserIds(@Param("list") List<String> userIds);
|
||||
|
||||
/**
|
||||
* 通过userId查询所绑定的角色(id + name)列表
|
||||
*
|
||||
* @param userId userId
|
||||
* @param status 状态
|
||||
* @return roles
|
||||
*/
|
||||
List<RoleDto> selectRoleDtoByUserId(@Param("userId") String userId, @Param("status") String status);
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.qiaoba.module.system.service;
|
||||
|
||||
import com.qiaoba.api.system.entity.SysUserRole;
|
||||
import com.qiaoba.auth.entity.dto.RoleDto;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -52,22 +53,14 @@ public interface SysUserRoleService {
|
||||
List<String> selectRoleIdsByUserId(String userId, String status);
|
||||
|
||||
/**
|
||||
* 通过userId查询所绑定的角色Key列表
|
||||
* 通过userId查询所绑定的角色(id + name)列表
|
||||
*
|
||||
* @param userId userId
|
||||
* @param status 状态
|
||||
* @return roleIds
|
||||
* @return roles
|
||||
*/
|
||||
List<String> selectRoleKeysByUserId(String userId, String status);
|
||||
List<RoleDto> selectRoleDtoByUserId(String userId, String status);
|
||||
|
||||
/**
|
||||
* 通过userId查询所绑定的角色Key列表
|
||||
*
|
||||
* @param userId userId
|
||||
* @param status 状态
|
||||
* @return roleNames
|
||||
*/
|
||||
List<String> selectRoleNamesByUserId(String userId, String status);
|
||||
|
||||
/**
|
||||
* 批量选择用户授权
|
||||
|
@ -7,6 +7,7 @@ import com.qiaoba.api.system.service.SysUserDetailsApiService;
|
||||
import com.qiaoba.auth.constants.SecurityConstant;
|
||||
import com.qiaoba.auth.entity.LoginUser;
|
||||
import com.qiaoba.auth.entity.SecurityUser;
|
||||
import com.qiaoba.auth.entity.dto.RoleDto;
|
||||
import com.qiaoba.common.base.enums.BaseEnum;
|
||||
import com.qiaoba.common.redis.service.RedisService;
|
||||
import com.qiaoba.module.system.service.SysMenuService;
|
||||
@ -20,6 +21,7 @@ import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 用户权限验证处理
|
||||
@ -41,7 +43,7 @@ public class SysUserDetailsServiceImpl implements UserDetailsService, SysUserDet
|
||||
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
|
||||
if (redisService.hasKey(SecurityConstant.USER_DETAILS_REDIS_KEY + username)) {
|
||||
SecurityUser user = redisService.getObject(SecurityConstant.USER_DETAILS_REDIS_KEY + username, SecurityUser.class);
|
||||
return new LoginUser(user.getUserId(), user.getDeptId(), user.getUsername(), user.getNickname(), user.getRoleKeys(), user.getPermissions());
|
||||
return new LoginUser(user.getUserId(), user.getDeptId(), user.getUsername(), user.getNickname(), user.getRoles(), user.getRoleKeys(), user.getPermissions());
|
||||
}
|
||||
|
||||
return toCache(username);
|
||||
@ -50,8 +52,9 @@ public class SysUserDetailsServiceImpl implements UserDetailsService, SysUserDet
|
||||
|
||||
private UserDetails createUserDetails(SysUser user) {
|
||||
Set<String> perms = sysMenuService.selectPermsByUserId(user.getUserId());
|
||||
List<String> roleKeys = sysUserRoleService.selectRoleKeysByUserId(user.getUserId(), BaseEnum.NORMAL.getCode());
|
||||
return new LoginUser(user.getUserId(), user.getDeptId(), user.getUsername(), user.getNickname(), roleKeys, perms);
|
||||
List<RoleDto> roles = sysUserRoleService.selectRoleDtoByUserId(user.getUserId(), BaseEnum.NORMAL.getCode());
|
||||
List<String> roleKeys = roles.stream().map(RoleDto::getRoleKey).collect(Collectors.toList());
|
||||
return new LoginUser(user.getUserId(), user.getDeptId(), user.getUsername(), user.getNickname(), roles, roleKeys, perms);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -5,6 +5,7 @@ import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.toolkit.Db;
|
||||
import com.qiaoba.api.system.entity.SysUserRole;
|
||||
import com.qiaoba.auth.entity.dto.RoleDto;
|
||||
import com.qiaoba.common.base.constants.BaseConstant;
|
||||
import com.qiaoba.common.base.enums.BaseEnum;
|
||||
import com.qiaoba.module.system.mapper.SysUserRoleMapper;
|
||||
@ -13,7 +14,9 @@ import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* 用户角色关联 服务层实现
|
||||
@ -54,13 +57,8 @@ public class SysUserRoleServiceImpl implements SysUserRoleService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> selectRoleKeysByUserId(String userId, String status) {
|
||||
return sysUserRoleMapper.selectRoleKeysByUserId(userId, status);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> selectRoleNamesByUserId(String userId, String status) {
|
||||
return sysUserRoleMapper.selectRoleNamesByUserId(userId, status);
|
||||
public List<RoleDto> selectRoleDtoByUserId(String userId, String status) {
|
||||
return sysUserRoleMapper.selectRoleDtoByUserId(userId, status);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -74,8 +72,9 @@ public class SysUserRoleServiceImpl implements SysUserRoleService {
|
||||
|
||||
@Override
|
||||
public String selectRoleGroup(String userId) {
|
||||
List<String> list = selectRoleNamesByUserId(userId, BaseEnum.NORMAL.getCode());
|
||||
return CollUtil.isNotEmpty(list) ? StrUtil.join(BaseConstant.LINE_JOIN_STR, list) : StrUtil.EMPTY;
|
||||
List<RoleDto> list = selectRoleDtoByUserId(userId, BaseEnum.NORMAL.getCode());
|
||||
List<String> names = list.stream().map(RoleDto::getRoleName).collect(Collectors.toList());
|
||||
return CollUtil.isNotEmpty(list) ? StrUtil.join(BaseConstant.LINE_JOIN_STR, names) : StrUtil.EMPTY;
|
||||
}
|
||||
|
||||
private QueryWrapper<SysUserRole> createWrapper(String userId) {
|
||||
|
@ -13,17 +13,8 @@
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="selectRoleKeysByUserId" resultType="string">
|
||||
select t2.role_key from sys_user_role t1
|
||||
left join sys_role t2 on t2.role_id = t1.role_id
|
||||
where t1.user_id = #{userId}
|
||||
<if test="status != null and status != ''">
|
||||
and t2.status = #{status}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="selectRoleNamesByUserId" resultType="string">
|
||||
select t2.role_name from sys_user_role t1
|
||||
<select id="selectRoleDtoByUserId" resultType="com.qiaoba.auth.entity.dto.RoleDto">
|
||||
select t2.role_id,t2.role_key,t2.role_name,t2.data_scope from sys_user_role t1
|
||||
left join sys_role t2 on t2.role_id = t1.role_id
|
||||
where t1.user_id = #{userId}
|
||||
<if test="status != null and status != ''">
|
||||
|
Reference in New Issue
Block a user