问题: 关于景点的展示问题 景点有级别之分 成一个树形结构的 层级关系还在一个表中 实现起来一点麻
表结构:
想着用一下hutool的 TreeUtil来完成任务
实现结果展示:
上代码
- @Override
- public List<Tree<String>> showAllScenic() {
- //展示所有的景点
- QueryWrapper<TicketScenic> wrapper = new QueryWrapper<>();
- wrapper.select("pk_id","parent_id","scenic_name","scenic_sort")
- .eq("scenic_deleted",false);
- List<TicketScenic> ticketScenic = ticketScenicMapper.selectList(wrapper);
- //配置 树
- TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
- //设置权重对应的名称 展示的顺序权重 0 max
- treeNodeConfig.setWeightKey("scenicSort");
- //设置ID对应的名称
- treeNodeConfig.setIdKey("pkId");
- //设置节点名对应的名称
- treeNodeConfig.setNameKey("scenicName");
- // 最大递归深度 4级目录
- treeNodeConfig.setDeep(SystemConstant.NUM_FOUR);
- //转换器 最顶层的id是0
- List<Tree<String>> treeNodes = TreeUtil.build(ticketScenic, "0", treeNodeConfig,
- (treeNode, tree) -> {
- //ID
- tree.setId(treeNode.getPkId().toString());
- //获取父节点ID
- tree.setParentId(treeNode.getParentId().toString());
- //顺序权重
- tree.setWeight(treeNode.getScenicSort());
- //名称
- tree.setName(treeNode.getScenicName());
- });
- return treeNodes;
- }