天秀代码-无限级树生成

后端快速完成组织树接口

一.前(bi)言(hua)

作为一个优秀的打工人,我又准时在8:30打卡,守时的一批。
为了提高工作效率我开始了…
在这里插入图片描述
摸鱼之后神清气爽,开始复盘:
作者排名:154658
钱包:一言难尽
嗯!现状良好具备挑战性,未来可期(欺)!
开干!!!

二.写接口如何快(zhuang)速(bi)

在这里插入图片描述
01.需求
实现组织架构查询功能
在这里插入图片描述
想要的数据结构
在这里插入图片描述

02.分析
树是无限极的,不确定级别。 需要使用递归查询
03.常规实现方式
查询一级数据,根据一级id进行递归查询,找到属于此数据的下级
04.天(zhuang)秀(bi)实现方式
查询所有组织架构数据,根据JAVA8新特性stream流完成树结构数据
第一步:筛选所有一级菜单
在这里插入图片描述
通过filter方法筛选,参数item就是遍历数据得到的一个元素,通过返回boolean值来确定是否要留下这个元素,Constant.root.equals(item.get(“parentId”)) 就是判断这个数据的父级id是不是0,如果是0那就是一级数据返回true 留下这个数据。
第二步:给一级数据添加下级数据
通过map方法对数据进行编辑,返回新的数据。
在这里插入图片描述
给数据赋值下级数据,getChilds方法就是获取下级数据方法。
在这里插入图片描述

通过filter过滤,找到父级id等于当前数据id的数据也就是这个当前数据子数据。
通过map方法,编辑当前子数据获取子数据的子数据进行递归获取。
第三步:排序
通过sorted方法进行排序,返回排序用到的值会自动排序默认正序。调用.reversed()方法进行倒序
在这里插入图片描述
第四步:通过collect方法将数据转为集合返回数据。

三.优缺

优:
一次查出数据库数据,避免频繁操作数据库,减轻数据库压力
缺:
性能糟糕,多次遍历

四.改进

1.查出数据直接返回到前端,由前端自己组装数据结构
服务器是一对多的承担压力大,将数据返回前端利用客户电脑资源完成工作。
2.缓存
组织架构不常改动,利用这一点业务特征可以将查询到的数据放到redis缓存,每次做写的操作(增删改)更新缓存

结束

我是想象致幻,一个天真、沙雕、想象力超强的沙雕
生如蝼蚁当立鸿鹄之志!!!加油!!!努力!!!
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值