refactor(face): 调整人脸关系数据删除逻辑

- 将删除人脸旧关系数据的逻辑从匹配前移至保存新关系前- 确保在更新人脸关系时正确清理旧数据- 避免重复删除操作,优化数据处理流程
This commit is contained in:
2025-10-30 10:40:33 +08:00
parent a7fe0d715d
commit 5979b1a275

View File

@@ -1143,13 +1143,6 @@ public class FaceServiceImpl implements FaceService {
throw new BaseException("人脸不存在");
}
// 在重新匹配前,删除该人脸的旧数据关系(member_source 和 member_video)
log.debug("删除人脸旧关系数据:faceId={}, memberId={}", faceId, face.getMemberId());
sourceMapper.deleteNotBuyFaceRelation(face.getMemberId(), faceId);
videoMapper.deleteNotBuyFaceRelations(face.getMemberId(), faceId);
memberRelationRepository.clearSCacheByFace(faceId);
log.debug("人脸旧关系数据删除完成:faceId={}", faceId);
List<FaceSampleEntity> faceSamples = faceSampleMapper.listByIds(faceSampleIds);
if (faceSamples.isEmpty()) {
log.warn("未找到指定的人脸样本,faceSampleIds: {}", faceSampleIds);
@@ -1220,6 +1213,13 @@ public class FaceServiceImpl implements FaceService {
List<Long> sampleListIds = mergedResult.getSampleListIds();
if (sampleListIds != null && !sampleListIds.isEmpty()) {
try {
// 在保存新关系前,删除该人脸的旧数据关系(member_source 和 member_video)
log.debug("删除人脸旧关系数据:faceId={}, memberId={}", faceId, face.getMemberId());
sourceMapper.deleteNotBuyFaceRelation(face.getMemberId(), faceId);
videoMapper.deleteNotBuyFaceRelations(face.getMemberId(), faceId);
memberRelationRepository.clearSCacheByFace(faceId);
log.debug("人脸旧关系数据删除完成:faceId={}", faceId);
List<MemberSourceEntity> memberSourceEntityList = processMemberSources(sampleListIds, face);
if (!memberSourceEntityList.isEmpty()) {