You've already forked FrameTour-BE
模板支持相同机位
This commit is contained in:
@@ -55,6 +55,7 @@ import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
@@ -268,18 +269,22 @@ public class GoodsServiceImpl implements GoodsService {
|
||||
}
|
||||
TaskEntity task = videoTaskRepository.getTaskById(videoRespVO.getTaskId());
|
||||
JSONObject paramJson = JSON.parseObject(task.getTaskParams());
|
||||
long deviceCount;
|
||||
AtomicInteger deviceCount = new AtomicInteger();
|
||||
goodsDetailVO.setShotTime(taskTaskService.getTaskShotDate(task.getId()));
|
||||
if (paramJson == null) {
|
||||
deviceCount = 1;
|
||||
deviceCount.set(1);
|
||||
} else {
|
||||
List<String> templatePlaceholder = templateRepository.getTemplatePlaceholder(task.getTemplateId());
|
||||
deviceCount = paramJson.keySet().stream()
|
||||
.filter(StringUtils::isNumeric)
|
||||
.filter(templatePlaceholder::contains)
|
||||
.count();
|
||||
paramJson.entrySet().stream()
|
||||
.filter(entry -> StringUtils.isNumeric(entry.getKey()))
|
||||
.forEach(entry -> {
|
||||
if (templatePlaceholder.contains(entry.getKey())) {
|
||||
deviceCount.getAndIncrement();
|
||||
templatePlaceholder.remove(entry.getKey());
|
||||
}
|
||||
});
|
||||
}
|
||||
goodsDetailVO.setLensNum((int) deviceCount);
|
||||
goodsDetailVO.setLensNum(deviceCount.get());
|
||||
return ApiResponse.success(goodsDetailVO);
|
||||
}
|
||||
|
||||
|
@@ -132,6 +132,7 @@ public class SourceServiceImpl implements SourceService {
|
||||
// 下载切片
|
||||
VideoPieceGetter.Task task = new VideoPieceGetter.Task();
|
||||
task.faceSampleIds = Collections.singletonList(source.getFaceSampleId());
|
||||
task.force = true;
|
||||
VideoPieceGetter.addTask(task);
|
||||
}
|
||||
return ApiResponse.success("任务已下发");
|
||||
|
@@ -274,10 +274,15 @@ public class TaskTaskServiceImpl implements TaskService {
|
||||
log.info("task callback: 没有视频源");
|
||||
return;
|
||||
}
|
||||
sourcesMap.forEach((key, value) -> {
|
||||
// 每个value只保留第一个
|
||||
value.removeIf(item -> !value.get(0).equals(item));
|
||||
});
|
||||
List<String> templatePlaceholder = templateRepository.getTemplatePlaceholder(templateId);
|
||||
if (templatePlaceholder.stream().distinct().count() == templatePlaceholder.size()) {
|
||||
sourcesMap.forEach((key, value) -> {
|
||||
// 每个value只保留第一个
|
||||
value.removeIf(item -> !value.get(0).equals(item));
|
||||
});
|
||||
} else {
|
||||
log.info("task callback: 模板占位符有重复,templateId: {}", templateId);
|
||||
}
|
||||
TaskReqQuery taskReqQuery = new TaskReqQuery();
|
||||
taskReqQuery.setFaceId(faceId);
|
||||
taskReqQuery.setTemplateId(templateId);
|
||||
@@ -469,10 +474,15 @@ public class TaskTaskServiceImpl implements TaskService {
|
||||
log.info("task callback: 没有视频源,templateId: {}", templateId);
|
||||
return;
|
||||
}
|
||||
sourcesMap.forEach((key, value) -> {
|
||||
// 每个value只保留第一个
|
||||
value.removeIf(item -> !value.get(0).equals(item));
|
||||
});
|
||||
List<String> templatePlaceholder = templateRepository.getTemplatePlaceholder(templateId);
|
||||
if (templatePlaceholder.stream().distinct().count() == templatePlaceholder.size()) {
|
||||
sourcesMap.forEach((key, value) -> {
|
||||
// 每个value只保留第一个
|
||||
value.removeIf(item -> !value.get(0).equals(item));
|
||||
});
|
||||
} else {
|
||||
log.info("task callback: 模板占位符有重复,templateId: {}", templateId);
|
||||
}
|
||||
TaskReqQuery taskReqQuery = new TaskReqQuery();
|
||||
taskReqQuery.setFaceId(faceId);
|
||||
taskReqQuery.setTemplateId(templateId);
|
||||
|
Reference in New Issue
Block a user