使用 202502241050 SpringBoot 自定义项目启动初始化工作
大概实现逻辑为:
查询方法封装
首先是 role_service 实现查询所有启用状态的角色(status = 0, is_deleted = 0
):
public List<TRole> getEntabledRole() {
LambdaQueryWrapper<TRole> enabledRole = new LambdaQueryWrapper<>();
enabledRole.eq(TRole::getStatus, 0)
.eq(TRole::getIsDeleted, 0);
List<TRole> tRoleList = this.baseMapper.selectList(enabledRole);
log.info("获取已启用的角色列表:{}", tRoleList);
return tRoleList;
}
之后是根据角色Id 查询 角色-权限 表:
public List<TRolePermissionRel> selectByRoleIds(List<Long> roleIds) {
List<TRolePermissionRel> rolePermissionRelList = this.baseMapper.selectBatchIds(roleIds);
log.info("由roleIds查 role-permision 结果:{}", rolePermissionRelList);
return rolePermissionRelList;
}
网关中只对普通用户进行鉴权,所以还需要查找到所有已被启用的权限:
public List<TPermission> selectEnabledList() {
LambdaQueryWrapper<TPermission> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(TPermission::getStatus, 0)
.eq(TPermission::getIsDeleted, 0);
List<TPermission> enabledList = this.baseMapper.selectList(lambdaQueryWrapper);
log.info("查找已启用的权限列表结果:{}", enabledList);
return enabledList;
}
还需要把权限提交到 redis,绑定 roleId:permissionList
确定角色-权限联系:
public class RedisKeyConstants {
public static final String ROLE_PERMISSIONS_KEY_PREFIX = "role:permissions:";
public static String buildRolePermissionsKey(Long roleId) {
return ROLE_PERMISSIONS_KEY_PREFIX + roleId;
}
}
Runner 业务逻辑
103385210006182