refactor(video):优化视频关联关系处理逻辑

- 调整source记录插入时机,确保关联关系处理前数据已存在
- 移除冗余的source存在性检查逻辑- 统一关联关系处理流程,避免重复代码
- 添加日志记录以便追踪处理过程- 优化代码结构,提高可读性和维护性
This commit is contained in:
2025-09-24 18:04:47 +08:00
parent 30805f3e30
commit 019b9ffca6

View File

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