查询用户的权限(菜单)树

经常需要树形结构数据,可以利用hutool工具类构建树形结构数据。

1.查询用户所有的权限列表(平级,此例是存在一个用户有多个角色,多个角色有权限重复的部分)。

        //根据角色查所有的菜单
List<PermissionVO> list = permissionMapper.findPermissionByRoleIds(roles);

2.去重:去除权限重复的

 List<PermissionVO> vos_new = list.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(()
                -> new TreeSet<>(Comparator.comparing(PermissionVO :: getCode))), ArrayList::new));

3.构建树形结构:利用hutool工具类的TreeUtil.build构建树形结构

 //配置
        TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
        // 自定义属性名 都要默认值的
        //数据ID
        treeNodeConfig.setIdKey("code");
        // 父级id字段
        treeNodeConfig.setParentIdKey("parentCode");
        // 排序字段,这个字段不能是null,不然会报错,默认最好是数字
        treeNodeConfig.setWeightKey("sort");
        // 最大递归深度
        //treeNodeConfig.setDeep(3);
        //转换器
        List<Tree<String>> build = TreeUtil.build(vos_new, gatewayCommonConfig.getWorkbenchSysId(), treeNodeConfig, ((object, treeNode) -> {
            treeNode.setId(object.getCode());//id
            treeNode.setParentId(object.getParentCode());//父id
            treeNode.putExtra("name", object.getName());
            treeNode.putExtra("orderNum", object.getOrderNum());
            treeNode.putExtra("type", object.getType());
            treeNode.putExtra("url", object.getUrl());
            treeNode.putExtra("icon", object.getIcon());
            treeNode.putExtra("permission", object.getPermission());
        }));
//转换成需要的格式
        List<PermissionVO> data = JSONObject.parseArray(JSON.toJSONString(build), PermissionVO.class);

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot是一种快速开发和构建Java应用程序的框架,它提供了许多便捷的功能和开发工具,使得权限用户菜单管理变得更加简单和高效。 在Spring Boot中,我们可以利用Spring Security来实现权限管理。Spring Security提供了一套完整的安全认证和授权机制,能够轻松地对用户进行身份验证和访问权限控制。 首先,我们需要定义用户、角色和权限的实体类,并将其映射到数据库中。可以使用Spring Data JPA来简化数据库操作。用户和角色之间是多对多的关系,可以通过中间表来建立关联关系。权限和角色之间是一对多的关系,即一个角色可以有多个权限。 接下来,我们可以创建一个UserService和RoleService来负责用户和角色的管理。UserService可以提供用户的注册、登录和用户信息的查询等功能。RoleService可以提供角色的创建、更新和删除等功能。 在控制器层面,我们可以定义一个UserController和RoleController来处理用户和角色的请求。UserController可以处理用户注册、登录和用户信息查询等请求。RoleController可以处理角色的创建、更新和删除等请求。 此外,我们还可以创建一个MenuService来管理菜单的信息。菜单可以有多级结构,可以通过父菜单和子菜单的关联来实现。MenuService可以提供菜单查询、创建和更新等功能。 最后,在前端界面上,我们可以通过使用Bootstrap等UI框架来构建用户菜单的管理界面。可以利用形结构来展示菜单的层级关系,通过勾选框来控制用户权限。 总之,利用Spring Boot和Spring Security,我们可以便捷地实现权限用户菜单管理。通过定义实体类、服务类和控制器类,并结合数据库操作和前端页面开发,可以构建一个功能完善的权限管理系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值