This commit is contained in:
2025-01-21 14:48:58 +08:00
parent 812a4b6331
commit 29715bda78
16 changed files with 336 additions and 116 deletions

View File

@@ -263,20 +263,22 @@ public class TaskTaskServiceImpl implements TaskService {
@Override
public void createTaskByFaceIdAndTempalteId(Long faceId, Long templateId, int automatic) {
FaceRespVO faceRespVO = faceMapper.getById(faceId);
if (faceRespVO == null) {
FaceEntity face = faceRepository.getFace(faceId);
if (face == null) {
log.info("faceId:{} is not exist", faceId);
return;
}
ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(faceRespVO.getScenicId());
List<FaceSampleEntity> faceSampleList = faceRepository.getFaceSampleList(faceId);
if (faceSampleList.isEmpty()) {
return;
log.info("faceId:{} sample list not exist", faceId);
}
List<Long> faceSampleIds = faceSampleList.stream().map(FaceSampleEntity::getId).collect(Collectors.toList());
List<SourceEntity> sourceList = sourceMapper.listBySampleIds(faceSampleIds);
List<SourceEntity> sourceList = sourceMapper.listVideoByScenicFaceRelation(face.getScenicId(), faceId);
if (sourceList.isEmpty()) {
log.info("faceId:{} source list not exist", faceId);
return;
}
// ScenicConfigEntity scenicConfig = scenicRepository.getScenicConfig(face.getScenicId());
// if (automatic > 0) {
// TaskReqQuery taskReqQuery = new TaskReqQuery();
// taskReqQuery.setFaceId(faceId);
@@ -314,7 +316,7 @@ public class TaskTaskServiceImpl implements TaskService {
task.faceId = faceId;
task.faceSampleIds = faceSampleIds;
task.templateId = templateId;
task.memberId = faceRespVO.getMemberId();
task.memberId = face.getMemberId();
task.callback = () -> {
log.info("task callback");
boolean canGenerate = templateBiz.determineTemplateCanGenerate(templateId, faceId);
@@ -322,7 +324,7 @@ public class TaskTaskServiceImpl implements TaskService {
log.info("task callback: 不能生成");
return;
}
List<SourceEntity> videoSourceList = sourceMapper.listVideoByScenicFaceRelation(faceRespVO.getScenicId(), faceId);
List<SourceEntity> videoSourceList = sourceMapper.listVideoByScenicFaceRelation(face.getScenicId(), faceId);
Map<String, List<SourceEntity>> sourcesMap = videoSourceList.stream()
.peek(item -> item.setUrl(item.getVideoUrl()))
.collect(Collectors.groupingBy(item -> item.getDeviceId().toString()));
@@ -337,8 +339,8 @@ public class TaskTaskServiceImpl implements TaskService {
List<TaskRespVO> list = taskMapper.list(taskReqQuery);
MemberVideoEntity memberVideoEntity = new MemberVideoEntity();
memberVideoEntity.setMemberId(faceRespVO.getMemberId());
memberVideoEntity.setScenicId(faceRespVO.getScenicId());
memberVideoEntity.setMemberId(face.getMemberId());
memberVideoEntity.setScenicId(face.getScenicId());
memberVideoEntity.setFaceId(faceId);
memberVideoEntity.setTemplateId(templateId);
memberVideoEntity.setIsBuy(0);
@@ -346,7 +348,7 @@ public class TaskTaskServiceImpl implements TaskService {
log.info("创建任务! faceId:{},templateId:{},taskParams:{}", faceId, templateId, sourcesMap);
TaskEntity taskEntity = new TaskEntity();
taskEntity.setId(SnowFlakeUtil.getLongId());
taskEntity.setScenicId(faceRespVO.getScenicId());
taskEntity.setScenicId(face.getScenicId());
taskEntity.setFaceId(faceId);
taskEntity.setTemplateId(templateId);
taskEntity.setStatus(0);
@@ -366,13 +368,21 @@ public class TaskTaskServiceImpl implements TaskService {
memberVideoEntity.setVideoId(video.getId());
// 已经生成了
new Thread(() -> {
sendVideoGeneratedServiceNotification(list.get(0).getId(), faceRespVO.getMemberId());
sendVideoGeneratedServiceNotification(list.get(0).getId(), face.getMemberId());
}).start();
}
}
videoMapper.addRelation(memberVideoEntity);
};
VideoPieceGetter.addTask(task);
if (faceSampleIds.isEmpty()) {
// 没有人脸样本
if (!sourceList.isEmpty()) {
// 但是有原片
task.callback.onInvoke();
}
} else {
VideoPieceGetter.addTask(task);
}
}
@Override