部门更新检查重名问题

来源:7-4 新增部门、部门层级树、更新部门接口自测

zhouyayong

2018-04-04

老师,您好!在部门更新自测的时候,发现当我传入的参数部门名称、parentId都不变的时候,会抛出重名的异常,我看您在视频里是通过的。但是不知道自己那里写错了。代码和您的一样。

如下是我的代码:

public void update(DeptParam param) {
        BeanValidator.check(param);
        if(checkExist(param.getParentId(), param.getName(), param.getId())) {
            throw new ParamException("同一层级下存在相同名称的部门");
        }
        SysDept before = sysDeptMapper.selectByPrimaryKey(param.getId());
        Preconditions.checkNotNull(before, "待更新的部门不存在");
        if(checkExist(param.getParentId(), param.getName(), param.getId())) {
            throw new ParamException("同一层级下存在相同名称的部门");
        }

        SysDept after = SysDept.builder().id(param.getId()).name(param.getName()).parentId(param.getParentId())
                .seq(param.getSeq()).remark(param.getRemark()).build();
        after.setLevel(LevelUtil.calculateLevel(getLevel(param.getParentId()), param.getParentId()));
        after.setOperator(RequestHolder.getCurrentUser().getUsername());
        after.setOperateIp(IpUtil.getRemoteIp(RequestHolder.getCurrentRequest()));
        after.setOperateTime(new Date());

        updateWithChild(before, after);
    }
private boolean checkExist(Integer parentId, String deptName, Integer deptId) {
        return sysDeptMapper.countByNameAndParentId(parentId, deptName, deptId) > 0;
    }


写回答

2回答

Jimin

2018-04-04

你好,还是贴代码出来看看吧。许多人都认为和视频里代码一致,最终问题基本都出现在代码的不一致上,否则视频里的代码运行肯定是错的。

当然,你也可以检查一下更新是当前部门是否传入id了,id从前端提交到后台,到整个传输过程中,以及最后到sql里是否都在,我目前猜测肯定是哪里给弄丢了。


0
1
zhouyayong
非常感谢!
2018-04-04
共1条回复

zhouyayong

提问者

2018-04-04

我在测试时候,怀疑自己的代码有错误,就把自己的代码注释掉,直接粘贴您项目中的代码进行测试的。

0
0

Java开发企业级权限管理系统

源于企业真实Java项目,涉及大量高级技巧,覆盖权限管理开发技术

2267 学习 · 1347 问题

查看课程