public <P, T> List<String> deleteBatch(List<P> params, Function<P, String> paramsComparator, Function<T, String> comparator, List<T> oldLevelList) {
List<String> deleteList = new ArrayList<>();
if (Func.isEmpty(oldLevelList)) {
return deleteList;
}
deleteList = mapFunction(oldLevelList, comparator);
List<String> newTagIdList = params.stream().map(paramsComparator).filter(e -> Func.isNotEmpty(e)).collect(Collectors.toList());
deleteList.removeAll(newTagIdList);
if (Func.isNotEmpty(deleteList)) {
this.getBaseMapper().deleteBatchIds(deleteList);
}
return deleteList;
}
public <T> List<String> mapFunction(List<T> tList, Function<T, String> comparator) {
return tList.stream().map(comparator).collect(Collectors.toList());
}
@Override
public Boolean updateBatch(List<EvalConfigLevelApiParam> params, String configId) {
if (Func.isEmpty(params)) {
return deleteByConfigId(configId);
}
List<EvalConfigLevel> oldLevelList = this.findLevelsByConfigId(configId);
List<String> deleteList = deleteBatch(params, EvalConfigLevelApiParam::getConfigId, EvalConfigLevel::getId, oldLevelList);
List<EvalConfigLevel> tags = convertToEvalConfigTagList(params, configId, deleteList);
return this.saveOrUpdateBatch(tags);
}
private void setOrderId(List<OrderBlacklistVo> Blacklist, Set<String> set, Function<OrderBlacklistVo,String> function) {
if (Func.isEmpty(Blacklist)) {
return;
}
Set<String> partnerOrderIdSet =
Blacklist.stream().map(function).collect(Collectors.toSet());
if (Func.isNotEmpty(partnerOrderIdSet)) {
set.addAll(partnerOrderIdSet);
}
}
setOrderId(partnerBlacklist, orderIdSet,OrderBlacklistVo::getOrderId);