From 90b6f53986e4185508b067960bae55c96f25b355 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Tue, 23 Sep 2025 10:38:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=9C=E5=BA=951=E4=B8=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ycwl/basic/biz/TemplateBiz.java | 17 ++++++++++++++--- .../service/task/impl/TaskTaskServiceImpl.java | 18 +++++++++++++++--- 2 files changed, 29 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/ycwl/basic/biz/TemplateBiz.java b/src/main/java/com/ycwl/basic/biz/TemplateBiz.java index 3d76f1a5..b523befe 100644 --- a/src/main/java/com/ycwl/basic/biz/TemplateBiz.java +++ b/src/main/java/com/ycwl/basic/biz/TemplateBiz.java @@ -32,8 +32,6 @@ public class TemplateBiz { private FaceRepository faceRepository; @Autowired private SourceMapper sourceMapper; - @Autowired - private SourceRepository sourceRepository; public boolean determineTemplateCanGenerate(Long templateId, Long faceId) { return determineTemplateCanGenerate(templateId, faceId, true); @@ -175,4 +173,17 @@ public class TemplateBiz { return filteredParams; } -} + public Long findFirstAvailableTemplate(List templateIds, Long faceId) { + if (templateIds == null || templateIds.isEmpty() || faceId == null) { + return null; + } + + for (Long templateId : templateIds) { + if (determineTemplateCanGenerate(templateId, faceId)) { + return templateId; + } + } + + return null; + } +} \ No newline at end of file diff --git a/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java b/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java index c1a19d3c..3b340933 100644 --- a/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java +++ b/src/main/java/com/ycwl/basic/service/task/impl/TaskTaskServiceImpl.java @@ -269,7 +269,7 @@ public class TaskTaskServiceImpl implements TaskService { log.info("faceId:{} faceSampleList is empty", faceId); return; } - ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(faceRespVO.getScenicId()); + ScenicConfigManager scenicConfig = scenicRepository.getScenicConfigManager(faceRespVO.getScenicId()); List templateList = templateRepository.getTemplateListByScenicId(faceRespVO.getScenicId()); if (templateList == null || templateList.isEmpty()) { // 没有vlog视频的情况下 @@ -284,11 +284,23 @@ public class TaskTaskServiceImpl implements TaskService { VideoPieceGetter.addTask(task); return; } - if (Integer.valueOf(3).equals(scenicConfig.getBookRoutine()) || Integer.valueOf(4).equals(scenicConfig.getBookRoutine())) { + if (Integer.valueOf(3).equals(scenicConfig.getInteger("book_routine")) || Integer.valueOf(4).equals(scenicConfig.getInteger("book_routine"))) { // 生成全部视频的逻辑 templateList.forEach(template -> createTaskByFaceIdAndTemplateId(faceId, template.getId(), 1)); } else { - createTaskByFaceIdAndTemplateId(faceId, templateList.getFirst().getId(), 1); + if (Boolean.TRUE.equals(scenicConfig.getBoolean("force_create_vlog"))) { + Long availableTemplateId = templateBiz.findFirstAvailableTemplate(templateList.stream().map(TemplateRespVO::getId).toList(), faceId); + if (availableTemplateId != null) { + createTaskByFaceIdAndTemplateId(faceId, availableTemplateId, 1); + } else { + log.info("faceId:{} available template is not exist", faceId); + } + } else { + // 非强制创建,只创建第一个可用模板 + if (!templateList.isEmpty()) { + createTaskByFaceIdAndTemplateId(faceId, templateList.getFirst().getId(), 1); + } + } } } @Override