使用 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