字段校验,现在有一个字段manangeCode已经可以校验重复,但是现在要添加assetCode字段重复校验,assetCode也可以为空字段,前后端该怎么写呢
后端直接处理,查询assetCode字段对应的数据是否存在进行重复校验,为空直接断言判断
不想动太多可以这么写
final LambdaQueryWrapper<ToolCase> query;
if (!StringUtils.isBlank(toolCase.getAssetCode())) {
query = Wrappers.<ToolCase>query().lambda().eq(ToolCase::getManangeCode, toolCase.getManangeCode()).or(item -> item.eq(ToolCase::getAssetCode, toolCase.getAssetCode()));
} else {
query = Wrappers.<ToolCase>query().lambda().eq(ToolCase::getManangeCode, toolCase.getManangeCode());
}
String assetCode = toolCase . getAssetCode();
if (!StringUtils.isBLank(manageCode)){//不为空的,在里面做判断重复
//在这里面做判断重复
}
前端不需要处理,校验以往数据的重复后端才能做到。
有两步:
private void test(ToolCase toolCase) {
String assetCode = toolCase.getAssetCode();
if (null != assetCode) {
Wrappers.<ToolCase>lambdaQuery()
.eq(ToolCase::getAssetCode, assetCode)
.ne(ToolCase::getId, toolCase.getId());
if (this.count(queryWrapper) > 0) {
throw new IllegalArgumentException("重复");
}
}
}
后端用一个校验框架吧,比如validation验证器,参考地址:https://blog.csdn.net/weixin_44566662/article/details/115622165