递归算法检索树的叶子节点解决多级组织架构(超3级)数据问题

本文介绍了如何使用递归算法检索具有多级(超3级)组织架构的树的叶子节点,特别是在增加了省、城市、区等层级后,如何处理用户登录并获取相应层级下所有部门的客户数据。通过递归方法查找叶子节点,确保无论用户处于哪一层级,都能获取其管理范围内的部门编码,进而查询客户数据。文中提供了场景描述和代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

递归算法检索树的叶子节点

场景描述:我们公司原本是三级组织架构,其中营销部门下面是多个项目部和多个销售设计部。各部门对应的岗位有部门主管,客户经理,设计师等。现要求,在营销部和销售部门之间增加层级(省,城市,区),如下图1所示。省对应的岗位为省区经理,城市对应的岗位是城市经理,大区对应的为区域经理。省区下辖多个城市,同理城市下辖多个区域。最后销售和设计部门划分到各个区域下,也可以直接划分到城市或者省区下。数据库parentId自关联表设计支持随意划分。

 

UI组件用的是ztree

       由于部门都是唯一的,部门拷贝是通过redis实现的,修改部门parentId然后存入Redis,不影响数据库中的部门本尊以及各部门的客户数据。返回数据的时候先查询数据库中组织架构,再讲redis中数据一起返回即可。

       那么问题来了,浙江大区怎么看下面各城市(下面的各区域)下面的各部门的客户数据呢?原先用户登录进来,直接通过shiro获得部门编码,去索引销售的客户数据即可,现在新增的浙江,杭州这种城市层级他们没有绑定任何客户数据。所以无法通过编码索引浙江所有的客户数据了。这时就用到了递归索引叶子节点了!!!

       不管登陆的用户是哪个层级的,都调用查找叶子的方法,找到这个级别下的叶子节点,如上图拱墅区域经理登录后,索引到销售设计三部和销售设计四部。如杭州登录下来,能索引到拱墅

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值