兜底1个

This commit is contained in:
2025-09-23 10:38:23 +08:00
parent 80b4508211
commit 90b6f53986
2 changed files with 29 additions and 6 deletions

View File

@@ -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<Long> templateIds, Long faceId) {
if (templateIds == null || templateIds.isEmpty() || faceId == null) {
return null;
}
for (Long templateId : templateIds) {
if (determineTemplateCanGenerate(templateId, faceId)) {
return templateId;
}
}
return null;
}
}

View File

@@ -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<TemplateRespVO> templateList = templateRepository.getTemplateListByScenicId(faceRespVO.getScenicId());
if (templateList == null || templateList.isEmpty()) {
// 没有vlog视频的情况下
@@ -284,13 +284,25 @@ 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 {
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
public void createTaskByFaceIdAndTemplateId(Long faceId, Long templateId) {
createTaskByFaceIdAndTemplateId(faceId, templateId, 0);