You've already forked FrameTour-BE
fix(face):修复人脸匹配样本ID处理逻辑
- 移除旧数据合并逻辑,直接使用上传的样本ID列表 - 使用stream过滤和去重处理样本ID - 简化样本列表变更检测逻辑 - 移除不必要的LinkedHashSet转换 - 优化最终样本列表的生成方式
This commit is contained in:
@@ -1289,16 +1289,13 @@ public class FaceServiceImpl implements FaceService {
|
|||||||
List<Long> currentAccepted = parseMatchSampleIds(face.getMatchSampleIds());
|
List<Long> currentAccepted = parseMatchSampleIds(face.getMatchSampleIds());
|
||||||
List<Long> manualAccepted = Optional.ofNullable(req.getManualAcceptedSampleIds()).orElse(Collections.emptyList());
|
List<Long> manualAccepted = Optional.ofNullable(req.getManualAcceptedSampleIds()).orElse(Collections.emptyList());
|
||||||
|
|
||||||
LinkedHashSet<Long> finalSampleSet = new LinkedHashSet<>();
|
// 直接使用上传的样本ID列表,不与旧数据合并
|
||||||
manualAccepted.stream()
|
List<Long> finalSampleList = manualAccepted.stream()
|
||||||
.filter(Objects::nonNull)
|
.filter(Objects::nonNull)
|
||||||
.forEach(finalSampleSet::add);
|
.distinct()
|
||||||
currentAccepted.stream()
|
.collect(Collectors.toList());
|
||||||
.filter(Objects::nonNull)
|
|
||||||
.forEach(finalSampleSet::add);
|
|
||||||
|
|
||||||
boolean hasManualChange = !manualAccepted.isEmpty();
|
boolean hasManualChange = !manualAccepted.isEmpty();
|
||||||
List<Long> finalSampleList = new ArrayList<>(finalSampleSet);
|
|
||||||
boolean needsUpdate = hasManualChange && !finalSampleList.equals(currentAccepted);
|
boolean needsUpdate = hasManualChange && !finalSampleList.equals(currentAccepted);
|
||||||
|
|
||||||
if (needsUpdate) {
|
if (needsUpdate) {
|
||||||
|
|||||||
Reference in New Issue
Block a user