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); }