From 019b9ffca6d0d30f2ba014e5415b86ccadfe2856 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Wed, 24 Sep 2025 18:04:47 +0800 Subject: [PATCH] =?UTF-8?q?refactor(video):=E4=BC=98=E5=8C=96=E8=A7=86?= =?UTF-8?q?=E9=A2=91=E5=85=B3=E8=81=94=E5=85=B3=E7=B3=BB=E5=A4=84=E7=90=86?= =?UTF-8?q?=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 调整source记录插入时机,确保关联关系处理前数据已存在 - 移除冗余的source存在性检查逻辑- 统一关联关系处理流程,避免重复代码 - 添加日志记录以便追踪处理过程- 优化代码结构,提高可读性和维护性 --- .../com/ycwl/basic/task/VideoPieceGetter.java | 28 ++++++++----------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/ycwl/basic/task/VideoPieceGetter.java b/src/main/java/com/ycwl/basic/task/VideoPieceGetter.java index aca62e79..8d4dacae 100644 --- a/src/main/java/com/ycwl/basic/task/VideoPieceGetter.java +++ b/src/main/java/com/ycwl/basic/task/VideoPieceGetter.java @@ -333,6 +333,12 @@ public class VideoPieceGetter { sourceEntity.setScenicId(deviceV2.getScenicId()); sourceEntity.setDeviceId(deviceId); sourceEntity.setType(1); + + // 先插入source记录 + sourceMapper.add(sourceEntity); + videoReUploader.addTask(sourceEntity.getId()); + + // 然后处理关联关系 if (task.memberId != null && task.faceId != null) { List memberSourceEntities = memberRelationRepository.listSourceByFaceRelation(task.faceId, 1); MemberSourceEntity videoSource = new MemberSourceEntity(); @@ -355,18 +361,11 @@ public class VideoPieceGetter { && memberSourceEntity.getFaceId().equals(videoSource.getFaceId()); }); if (!anyMatch) { - // 验证source是否存在,防止创建孤立的关联关系 - if (sourceMapper.sourceExists(videoSource.getSourceId())) { - sourceMapper.addRelation(videoSource); - } else { - log.warn("尝试创建关联关系但source不存在: sourceId={}, faceId={}, memberId={}", - videoSource.getSourceId(), videoSource.getFaceId(), videoSource.getMemberId()); - } + // source已插入,可以直接添加关联关系 + sourceMapper.addRelation(videoSource); } memberRelationRepository.clearSCacheByFace(task.faceId); } - sourceMapper.add(sourceEntity); - videoReUploader.addTask(sourceEntity.getId()); } else { source.setVideoUrl(url); if (StringUtils.isNotBlank(config.getString("video_crop"))) { @@ -376,7 +375,7 @@ public class VideoPieceGetter { videoReUploader.addTask(source.getId()); } } else { - // 有原视频 + // 有原视频,source已存在,可以直接添加关联关系 if (task.memberId != null && task.faceId != null) { List memberSourceEntities = memberRelationRepository.listSourceByFaceRelation(task.faceId, 1); IsBuyRespVO isBuy = orderBiz.isBuy(task.getMemberId(), deviceV2.getScenicId(), 1, task.getFaceId()); @@ -401,13 +400,8 @@ public class VideoPieceGetter { && memberSourceEntity.getFaceId().equals(videoSource.getFaceId()); }); if (!anyMatch) { - // 验证source是否存在,防止创建孤立的关联关系 - if (sourceMapper.sourceExists(videoSource.getSourceId())) { - sourceMapper.addRelation(videoSource); - } else { - log.warn("尝试创建关联关系但source不存在: sourceId={}, faceId={}, memberId={}", - videoSource.getSourceId(), videoSource.getFaceId(), videoSource.getMemberId()); - } + // source已存在,可以直接添加关联关系 + sourceMapper.addRelation(videoSource); } memberRelationRepository.clearSCacheByFace(task.faceId); }