问题: 关于景点的展示问题 景点有级别之分 成一个树形结构的 层级关系还在一个表中 实现起来一点麻
表结构:
想着用一下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;
}