ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

返回树形菜单集合

2021-08-06 15:32:34  阅读:217  来源: 互联网

标签:菜单 return TreeNode List dept 树形 集合 treeNode


借助hutool的Tree和TreeNode数据结构,快速构建树形集合

	/**
	 * 返回树形菜单集合
	 * @return 树形菜单
	 */
	@GetMapping(value = "/tree")
	public R listDeptTrees() {
		return R.ok(sysDeptService.listDeptTrees());
	}
	/**
	 * 查询全部部门树
	 * @return 树
	 */
	@Override
	public List<Tree<Integer>> listDeptTrees() {
		return getDeptTree(this.list(Wrappers.emptyWrapper()));
	}
	/**
	 * 构建部门树
	 * @param depts 部门
	 * @return
	 */
	private List<Tree<Integer>> getDeptTree(List<SysDept> depts) {
		List<TreeNode<Integer>> collect = depts.stream()
				.filter(dept -> dept.getDeptId().intValue() != dept.getParentId())
				.sorted(Comparator.comparingInt(SysDept::getSort))
				.map(dept -> {
					TreeNode<Integer> treeNode = new TreeNode<>();
					treeNode.setId(dept.getDeptId());
					treeNode.setParentId(dept.getParentId());
					treeNode.setName(dept.getName());
					return treeNode;
				}).collect(Collectors.toList());

		return TreeUtil.build(collect, 0);
	}

这种方法比10行代码搞定树形结构数据更容易看懂

标签:菜单,return,TreeNode,List,dept,树形,集合,treeNode
来源: https://blog.csdn.net/qq_39940205/article/details/119456077

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有