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("异常");
}
}