From 5979b1a2757a8bf843fbea12da1f32105628117e Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Thu, 30 Oct 2025 10:40:33 +0800 Subject: [PATCH] =?UTF-8?q?refactor(face):=20=E8=B0=83=E6=95=B4=E4=BA=BA?= =?UTF-8?q?=E8=84=B8=E5=85=B3=E7=B3=BB=E6=95=B0=E6=8D=AE=E5=88=A0=E9=99=A4?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将删除人脸旧关系数据的逻辑从匹配前移至保存新关系前- 确保在更新人脸关系时正确清理旧数据- 避免重复删除操作,优化数据处理流程 --- .../basic/service/pc/impl/FaceServiceImpl.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java b/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java index 2f847838..448c489a 100644 --- a/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/pc/impl/FaceServiceImpl.java @@ -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 faceSamples = faceSampleMapper.listByIds(faceSampleIds); if (faceSamples.isEmpty()) { log.warn("未找到指定的人脸样本,faceSampleIds: {}", faceSampleIds); @@ -1220,6 +1213,13 @@ public class FaceServiceImpl implements FaceService { List 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 memberSourceEntityList = processMemberSources(sampleListIds, face); if (!memberSourceEntityList.isEmpty()) {