请稍等 ...
×

采纳答案成功!

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

新增部门 public void save(DeptParam param){}方法返回json提示信息失败,但数据能正确插入

老师,麻烦了,在执行新增部门信息的过程中,url : http://localhost:8080/sys/dept/save.json?name=前端开发&seq=1&parentId=1&remark=前端开发

数据能成功保存,但是返回的json提示信息总是那个抛出的异常:“同一层级下不能存在相同名称的部门”

public void save(DeptParam param){
        BeanValidator.check(param);
        if(checkExist(param.getParentId(),param.getName(),param.getId())){
            throw new ParamException("同一层级下不能存在相同名称的部门");
        }
        SysDept dept = SysDept.builder().name(param.getName()).parentId(param.getParentId())
                .seq(param.getSeq()).remark(param.getRemark()).build();

        // 传入上一个部门的层级
        String level = LevelUtil.calculateLevel(getLevel(param.getParentId()),param.getParentId());
        dept.setLevel(level);
        dept.setOperator("system");// TODO:
        dept.setOperatorIp("127.0.0.1");// TODO:
        dept.setOperatorTime(new Date());
        sysDeptMapper.insertSelective(dept);
    }

正在回答

2回答

你好,这是正常的业务校验啊,举个简单的例子,大家部门都叫相同名称,那么说是哪个部门时就无法区分了,因此这里为了保证符合实际场景需要,做了专门的校验,你每次提交时换个不同的部门名称就不会遇到这个提示了。

0 回复 有任何疑惑可以回复我~
  • 提问者 Screenly #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2018-09-08 14:20:00
  • 提问者 Screenly #2
    老师,又得麻烦您了,当前这个问题就是  没有这个部门的信息,在新增的时候应该不提示“同一层级下不能存在相同名称的部门”,但是没有重复部门也提示这个,我debug了一下,也就是说  private boolean checkExist()这个方法中查到了这条已经有了部门的记录,但是实际没有
    回复 有任何疑惑可以回复我~ 2018-09-08 16:40:56
  • 提问者 Screenly #3
    老师,刚刚debug有找到一个现象,在没有相同部门的情况下新增,debug过程中有出现正常的返回信息,但是最后后执行完还是返回“同一层级下不能存在相同名称的部门”,但是数据能添加到数据库中
    回复 有任何疑惑可以回复我~ 2018-09-08 17:06:43
提问者 Screenly 2018-09-08 14:19:54

老师明白了,可能没表达清楚,我是在表中没有数据的时候新增的第一条记录的时候,现在可以了,谢谢老师!!!

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信