融资项目——获取树形结构的数据

如下图所示,下列数据是一个树形结构数据,行业中包含若干子节点。表的设计如下图,设置了一个id为1的虚拟根节点。(本树形结构带虚拟根节点共三层)

实现逻辑:

延时展示方法,先展现第二层的信息,如果想要看到具体第三层的信息,点击按钮触发后台请求,通过当前点击的父节点获得其所有子节点。

实现方法:

0. 首先在Dict实体类中加入如下属性:

 @TableField(exist = false)//逻辑概念的属性,与物理表没有关系,数据库表中不存在该字段。
    private boolean hasChildren;

1.Service层:

    @Override
    public List<Dict> listByParentId(Long parentId) {
        QueryWrapper<Dict> queryWrapper=new QueryWrapper<>();
        queryWrapper.eq("parent_id",parentId);
        List<Dict> dictList= dictMapper.selectList(queryWrapper);
        //填充hasChildren字段
        dictList.forEach(dict -> {
            //判断当前字段是否有子节点
            dict.setHasChildren(this.hasChildre(parentId));
        });
        return dictList;
    }

//    判断当前节点下是否存在子节点
    private  boolean hasChildre(Long id){
        QueryWrapper<Dict> queryWrapper=new QueryWrapper<>();
        queryWrapper.eq("parent_id",id);
        Integer count=dictMapper.selectCount(queryWrapper);
        if(count>0)return true;
        else return false;
    }

2. Controller层:

@ApiOperation("根据上级id获取所有子节点信息")
    @GetMapping("/listByParentId/{parentId}")
    public R listByParentId(@ApiParam(value = "上级父节点的id")@PathVariable Long parentId){
        List<Dict> dictList=dictService.listByParentId(parentId);
        return R.ok().data("list",dictList);
    }

相关推荐

  1. C# 递归获取树形结构数据类型

    2024-02-10 21:42:02       100 阅读
  2. 数据结构树形结构

    2024-02-10 21:42:02       36 阅读
  3. 获取字典树形结构框架树代码

    2024-02-10 21:42:02       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-10 21:42:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-10 21:42:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-02-10 21:42:02       87 阅读
  4. Python语言-面向对象

    2024-02-10 21:42:02       96 阅读

热门阅读

  1. 脑海模拟法实例场景之--日后创业篇.

    2024-02-10 21:42:02       46 阅读
  2. 蓝桥杯官网练习题(大臣的旅费)

    2024-02-10 21:42:02       53 阅读
  3. 单调队列优化DP,LeetCode1696. 跳跃游戏 VI

    2024-02-10 21:42:02       60 阅读
  4. 掌握XGBoost:特征工程与数据预处理

    2024-02-10 21:42:02       49 阅读
  5. c# 加密解密帮助类

    2024-02-10 21:42:02       51 阅读
  6. 通过神经网络模拟人类大脑的学习过程

    2024-02-10 21:42:02       55 阅读
  7. 利用python调用ChatGPT API示例

    2024-02-10 21:42:02       46 阅读
  8. 公司大数据展示模板【大屏可视化项目案例-23】

    2024-02-10 21:42:02       49 阅读