//传入的数据不能有重复code,传入的code也不能和数据库中的code重复
List<String> codes = req.getPostNameList().stream().map(TenantDeptUpdatePostReq.PostNameReq::getCode).toList();
//创建一个集合装传入数据中的重复code
List<String> duplicateCodes = new ArrayList<>();
for (int i = 0; i < codes.size(); i++) {
for (int j = i + 1; j < codes.size(); j++) {
if (codes.get(i).equals(codes.get(j))) {
if (!duplicateCodes.contains(codes.get(i))) {
duplicateCodes.add(codes.get(i));
}
}
}
}
String duplicateCodesStr = duplicateCodes.stream().collect(Collectors.joining(","));
if (StringUtils.isNotBlank(duplicateCodesStr)){
throw new CustomException(String.format("编号【%s】已存在",duplicateCodesStr));
}
LambdaQueryWrapper<TenantDeptPost> wrapper = new LambdaQueryWrapper<>();
wrapper.in(TenantDeptPost::getCode,codes);
List<TenantDeptPost> tenantDeptPosts = tenantDeptPostRepository.selectList(wrapper);
String codeNames = tenantDeptPosts.stream().map(TenantDeptPost::getCode).collect(Collectors.joining(","));
if (StringUtils.isNotBlank(codeNames)){
throw new CustomException(String.format("编号【%s】已存在",codeNames));
}
传入值的防重(避免传入list里的code有重复,且避免传入code和数据库已有的code重复)
于 2023-07-17 09:34:44 首次发布