开发技巧之校验相同的字段名称

我爱海鲸 2022-08-11 10:57:44 暂无标签

简介springboot、mybatis-plus

1、场景:我们需要添加或者修改一个表单,但是其中的名称是不能为重复的

问题就是添加的时候名称是不能重复的,但是在修改的时候,名称可以不进行修改,所以需要在修改的时候对当前表单的名称进行过滤

代码如下:

/**
     *
     * 校验名称是否重复
     * @param name 表单名称
     * @param id id
     */
    private void checkNameRepeat(String name,Long id) {
        boolean isSave = ObjectUtil.isEmpty(id);
        if (isSave) {
            exit(name);
        } else {
            Test test= this.getById(id);
            if (ObjectUtil.isEmpty(test)) {
                throw new ServerException("异常");
            }
            // 过滤自己的名称 进行校验
            if(!test.getName().equals(name)) {
                exit(name);
            }
        }
    }

   /**
     * 名称是否存在
     * @param name 名称
     */
    private void exit(String name ) {
        int count = this.count(Wrappers.<Test>lambdaQuery()
                .eq(Test::getName, name )
        );
        if (count > 0) {
            throw new ServerException("异常");
        }
    }

你好:我的2025