请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

部门管理更新level问题

假如后端、前端全部在技术部(id=1)下面,而且前端和后端的parent_id都为1,level为0.1。

那假如我要把后端放到前端的部门下,那批量更新,前端和后端的level都会改变的。逻辑感觉有问题


正在回答 回答被采纳积分+3

1回答

Jimin 2017-11-22 23:21:13

你好,目前这个逻辑是没问题,但是在传参数上有点问题。

最初这个的设计来自postgresql里的ltree结构,在实现时我也是按照ltree去实现的,导致同样的sql在mysql上表现和预期有些不符,导致实际在查询子部门时会带上当前部门,可以通过以下调整来避免这个问题。

SysDeptService.java 的 updateWithChild方法里:

List<SysDept> deptList = sysDeptMapper.getChildDeptListByLevel(before.getLevel());

这一行调整为 

List<SysDept> deptList = sysDeptMapper.getChildDeptListByLevel(before.getLevel() + "." + before.getId());

2 回复 有任何疑惑可以回复我~
  • 源码和视频都是错误的,我觉得您要是想省力,更新一下源码的错误。这样我们找起来错误来可能会更方便。不过,不更新也有好处,程序总会有坑,在调试解决这个坑的过程,有更深的理解,也进步不少。
    回复 有任何疑惑可以回复我~ 2018-07-16 16:15:13
  • Jimin 回复 慕沐3291583 #2
    这个之前是做过的,但是感觉网站提醒的不是很明显,具体在这里,http://coding.imooc.com/learn/log/149.html,同时代码也上传过1份,时间应该是2018.05.02
    回复 有任何疑惑可以回复我~ 2018-07-16 17:12:08
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信