first commit

This commit is contained in:
2023-05-22 20:14:18 +08:00
parent 3baba77120
commit f5aa6b2f69
18 changed files with 158 additions and 167 deletions

View File

@ -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);
}

View File

@ -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);
/**
* 批量选择用户授权

View File

@ -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

View File

@ -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) {

View File

@ -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 != ''">