当前位置: 首页 > news >正文

查询树形目录(内存遍历成树返回)

实体

@Data
@TableName("dtp_sm_servicetype")
@ApiModel(value = "SmServicetype对象", description = "服务类型")
@EqualsAndHashCode(callSuper = true)
public class SmServicetype extends BaseEntity {@ApiModelProperty("服务类型名称")private String name;@ApiModelProperty("服务标题")private String title;@ApiModelProperty("服务分类描述")private String descinfo;@ApiModelProperty("服务分类父节点编号")private Long parentId;@ApiModelProperty("排序")private Integer orderIndex;// 存储下(子)级节点信息@TableField(exist = false)private List<SmServicetype> childrenList;
}

调用

/*** 服务类型 分页*/
@ApiOperation(value = "查询所有服务类型", notes = "传入smServicetype")
public R<List<SmServicetypeVO>> serviceTypeTree(SmServicetype smServicetype) {//查询所有树数据listList<SmServicetype> allList = smServicetypeService.list();// 内存中递归成树List<SmServicetype> typeTreeList = this.selectSmServicetypeTrees(allList);return R.data(SmServicetypeWrapper.build().listVO(typeTreeList));
}private List<SmServicetype> selectSmServicetypeTrees(List<SmServicetype> smServicetypeList) {List<SmServicetype> collect = smServicetypeList.stream().filter(item -> item.getParentId() == -1)   //ParentId=-1的节点为根节点(根据具体情况修改)    filter为过滤不符合条件的.map(item -> {item.setChildrenList(getChildrenList(item, smServicetypeList));return item;}).collect(Collectors.toList());return collect.size() == 0 ? smServicetypeList : collect;}private List<SmServicetype> getChildrenList(SmServicetype smServicetype, List<SmServicetype> smServicetypeList) {List<SmServicetype> collect = smServicetypeList.stream().filter(item -> item.getParentId().equals(smServicetype.getId())).map(item -> {item.setChildrenList(getChildrenList(item, smServicetypeList));return item;}).collect(Collectors.toList());return collect;
}

http://www.lryc.cn/news/121552.html

相关文章:

  • Easys Excel的表格导入(读)导出(写)-----java
  • 纯净版ISO镜像下载大全(Windows、Linux、mac)
  • VMware上的Centos设置静态IP
  • 【MySQL】数据库的基本操作
  • Spring整合MyBatis(详细步骤)
  • Linux:Shell编程之正则表达式
  • Python Opencv实践 - 图像缩放
  • 大脑营行|“福安市华龙教育基金”支持家乡教育事业发展
  • Windows 2016安装Jenkins
  • 章节4:Burp Target模块
  • CAN总线一些经典的现场故障
  • VS+QT+Opencv使用YOLOv4对视频流进行目标检测
  • oracle创建管理用户并授权
  • ​三江学院图书馆藏八一新书《乡村振兴战略下传统村落文化旅游设计》
  • 机器学习笔记 - 基于PyTorch + 类似ResNet的单目标检测
  • 系列二、Redis简介
  • 基于TF-IDF+TensorFlow+词云+LDA 新闻自动文摘推荐系统—深度学习算法应用(含ipynb源码)+训练数据集
  • 尼科彻斯定理-C语言/Java
  • C++学习笔记——从面试题出发学习C++
  • WebAPIs 第二天
  • 解决macOS执行fastboot找不到设备的问题
  • Linux命令 -- chmod
  • 国产超低功耗32位MCU的应用
  • 将数组(矩阵)旋转根据指定的旋转角度scipy库的rotate方法
  • MFC创建和使用OCX控件
  • 【设计模式】抽象工厂模式
  • 小白带你学习linux的Redis3.2集群(三十三)
  • 嵌入式技术,就在你的手边!
  • nodejs+vue+elementui健康饮食美食菜谱分享网站系统
  • input 设置type=“number“,鼠标悬停关闭提示语