分析这段代码@RequestMapping("/initPermissionByRoleId") public DataGridViewResult initPermissionByRoleId(int roleId) { //创建条件构造器对象 QueryWrapper<Permission> queryWrapper = new QueryWrapper<>(); List<Permission> permissionList = permissionService.list(); List<Integer> currentPermissionIds = permissionService.findRolePermissionIdByRoleId(roleId); //保存角色拥有的菜单 List<Permission> currentPermissions = new ArrayList<>(); if (currentPermissionIds != null && currentPermissionIds.size() > 0) { queryWrapper.in("id", currentPermissionIds); currentPermissions = permissionService.list(queryWrapper); } List<TreeNode> treeNodes = new ArrayList<>(); for (Permission p1 : permissionList) { //定义变量标记是否选中 String checkArr = "0"; for (Permission p2 : currentPermissions) { if (p1.getId().equals(p2.getId())) { checkArr = "1"; break; } } Boolean spread = p1.getSpread() == 1 ? true : false; treeNodes.add(new TreeNode(p1.getId(), p1.getPid(), p1.getTitle(), spread, checkArr)); } return new DataGridViewResult(treeNodes); }
时间: 2024-04-09 09:29:50 浏览: 104
这段代码是一个Spring MVC的控制器方法,使用@RequestMapping注解映射了"/initPermissionByRoleId"路径。该方法接受一个int类型的roleId参数,并返回一个DataGridViewResult对象。
在方法内部,首先创建了一个QueryWrapper对象queryWrapper,并通过permissionService的list方法获取了所有的Permission对象列表permissionList,以及通过roleId获取了当前角色拥有的权限ID列表currentPermissionIds。
接下来,根据currentPermissionIds查询出当前角色拥有的权限列表currentPermissions,并保存在currentPermissions集合中。
然后,通过遍历permissionList和currentPermissions两个集合的方式,构建了一个树形结构的节点列表treeNodes。对于每个权限对象p1,通过遍历currentPermissions集合来判断是否选中,并根据p1的spread属性来设置节点是否展开。最后将构建好的TreeNode对象添加到treeNodes集合中。
最后,将treeNodes作为参数创建一个DataGridViewResult对象,并作为方法的返回值返回。
总结起来,这段代码的作用是根据角色ID获取该角色拥有的权限,并将其构建成树形结构的节点列表返回。
阅读全文