You've already forked FrameTour-BE
兜底1个
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
@@ -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);
|
||||
|
Reference in New Issue
Block a user