部门管理更新level问题
来源:8-7 列表分页插件开发

慕用2942571
2017-11-22
假如后端、前端全部在技术部(id=1)下面,而且前端和后端的parent_id都为1,level为0.1。
那假如我要把后端放到前端的部门下,那批量更新,前端和后端的level都会改变的。逻辑感觉有问题
写回答
1回答
-
Jimin
2017-11-22
你好,目前这个逻辑是没问题,但是在传参数上有点问题。
最初这个的设计来自postgresql里的ltree结构,在实现时我也是按照ltree去实现的,导致同样的sql在mysql上表现和预期有些不符,导致实际在查询子部门时会带上当前部门,可以通过以下调整来避免这个问题。
SysDeptService.java 的 updateWithChild方法里:
List<SysDept> deptList = sysDeptMapper.getChildDeptListByLevel(before.getLevel());
这一行调整为
List<SysDept> deptList = sysDeptMapper.getChildDeptListByLevel(before.getLevel() + "." + before.getId());
222018-07-16
相似问题