解析 if (contOptPerMsgEntityList != null && contOptPerMsgEntityList.size() > 0) { contOptPerMsgEntityList = contOptPerMsgEntityList.stream() .map(perMsg -> { perMsg.setGroupType(groupType); perMsg.setPersonType(personType); perMsg.setWelfareNo(welfareNo); return perMsg; } ).filter(perMsg -> { String attrName = perMsg.getAttrName(); String attrDes = perMsg.getAttrDes(); String attrDescEn = perMsg.getAttrDescEn(); if ("null1".equals(attrName) || "null2".equals(attrName) || "null3".equals(attrName) || "null4".equals(attrName) || "null5".equals(attrName)) { return StringUtils.isBlank(attrDes) && StringUtils.isBlank(attrDescEn); } return true; } ).collect(Collectors.toList()); contOptPerMsgService.remove( new LambdaQueryWrapper<ContOptPerMsgEntity>() .eq(ContOptPerMsgEntity::getWelfareNo, welfareNo) .eq(ContOptPerMsgEntity::getGroupType, groupType) .eq(ContOptPerMsgEntity::getPersonType, personType) ); contOptPerMsgService.saveBatch(contOptPerMsgEntityList); }并解析每一个方法的用法和优化具体代码,去掉return行不行,并且写出去掉还能跑的代码
时间: 2023-11-22 08:53:24 浏览: 25
这段代码的作用是对一个名为 `contOptPerMsgEntityList` 的列表进行一系列操作,包括修改其中每个元素的属性值,过滤掉不符合条件的元素,并将结果保存到数据库中。
具体来说,代码首先判断 `contOptPerMsgEntityList` 是否为空并且长度大于0,如果是,则对列表中的每个元素进行如下操作:
1. 设置元素的 `groupType`、`personType` 和 `welfareNo` 属性值为给定的值。
2. 根据元素的属性值过滤掉不符合条件的元素,如果元素的 `attrName` 属性值为 "null1"、"null2"、"null3"、"null4" 或 "null5",则要求其 `attrDes` 和 `attrDescEn` 属性值均为空,否则保留该元素。
3. 将符合条件的元素保存到一个新的列表中,然后将此列表赋值给原来的 `contOptPerMsgEntityList` 变量。
接下来,代码调用 `contOptPerMsgService` 的 `remove` 方法,删除数据库中符合条件的记录,然后调用 `saveBatch` 方法,将符合条件的记录保存到数据库中。
对于代码中的 `return` 语句,第一个 `return` 语句在过滤操作中用于跳过不符合条件的元素,第二个 `return` 语句在 `filter` 操作中用于返回符合条件的元素。如果去掉这两个 `return` 语句,代码将无法编译,因为缺少必要的返回语句。
以下是去掉 `return` 语句后的代码:
```java
if (contOptPerMsgEntityList != null && contOptPerMsgEntityList.size() > 0) {
contOptPerMsgEntityList = contOptPerMsgEntityList.stream()
.map(perMsg -> {
perMsg.setGroupType(groupType);
perMsg.setPersonType(personType);
perMsg.setWelfareNo(welfareNo);
return perMsg;
})
.filter(perMsg -> {
String attrName = perMsg.getAttrName();
String attrDes = perMsg.getAttrDes();
String attrDescEn = perMsg.getAttrDescEn();
if ("null1".equals(attrName) || "null2".equals(attrName) || "null3".equals(attrName) || "null4".equals(attrName) || "null5".equals(attrName)) {
return StringUtils.isBlank(attrDes) && StringUtils.isBlank(attrDescEn);
} else {
return true;
}
})
.collect(Collectors.toList());
contOptPerMsgService.remove(
new LambdaQueryWrapper<ContOptPerMsgEntity>()
.eq(ContOptPerMsgEntity::getWelfareNo, welfareNo)
.eq(ContOptPerMsgEntity::getGroupType, groupType)
.eq(ContOptPerMsgEntity::getPersonType, personType)
);
contOptPerMsgService.saveBatch(contOptPerMsgEntityList);
}
```