You've already forked FrameTour-BE
2
This commit is contained in:
@ -10,6 +10,7 @@ import com.ycwl.basic.model.pc.template.entity.TemplateConfigEntity;
|
||||
import com.ycwl.basic.repository.FaceRepository;
|
||||
import com.ycwl.basic.repository.SourceRepository;
|
||||
import com.ycwl.basic.repository.TemplateRepository;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@ -18,6 +19,7 @@ import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
@Slf4j
|
||||
@Component
|
||||
public class TemplateBiz {
|
||||
@Autowired
|
||||
@ -29,8 +31,11 @@ public class TemplateBiz {
|
||||
@Autowired
|
||||
private SourceRepository sourceRepository;
|
||||
|
||||
|
||||
public boolean determineTemplateCanGenerate(Long templateId, Long faceId) {
|
||||
return determineTemplateCanGenerate(templateId, faceId, true);
|
||||
}
|
||||
|
||||
public boolean determineTemplateCanGenerate(Long templateId, Long faceId, boolean scanSource) {
|
||||
List<String> placeholderList = templateRepository.getTemplatePlaceholder(templateId);
|
||||
TemplateConfigEntity templateConfig = templateRepository.getTemplateConfig(templateId);
|
||||
int minimalPlaceholderFill = 1;
|
||||
@ -47,8 +52,65 @@ public class TemplateBiz {
|
||||
if (faceSampleList.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
List<SourceEntity> sourceEntities = sourceMapper.listVideoByScenicFaceRelation(face.getScenicId(), faceId);
|
||||
long count = sourceEntities.stream().map(SourceEntity::getDeviceId).filter(deviceId -> placeholderList.contains(deviceId.toString())).count();
|
||||
long count;
|
||||
if (scanSource) {
|
||||
List<SourceEntity> sourceEntities = sourceMapper.listVideoByScenicFaceRelation(face.getScenicId(), faceId);
|
||||
count = sourceEntities.stream()
|
||||
.map(SourceEntity::getDeviceId)
|
||||
.distinct()
|
||||
.filter(deviceId -> placeholderList.contains(deviceId.toString()))
|
||||
.count();
|
||||
} else {
|
||||
count = faceSampleList.stream()
|
||||
.map(FaceSampleEntity::getDeviceId)
|
||||
.distinct()
|
||||
.filter(deviceId -> placeholderList.contains(deviceId.toString()))
|
||||
.count();
|
||||
}
|
||||
return count >= minimalPlaceholderFill;
|
||||
}
|
||||
|
||||
public boolean determineTemplateCanAutoGenerate(Long templateId, Long faceId) {
|
||||
return determineTemplateCanAutoGenerate(templateId, faceId, true);
|
||||
}
|
||||
|
||||
public boolean determineTemplateCanAutoGenerate(Long templateId, Long faceId, boolean scanSource) {
|
||||
List<String> placeholderList = templateRepository.getTemplatePlaceholder(templateId);
|
||||
TemplateConfigEntity templateConfig = templateRepository.getTemplateConfig(templateId);
|
||||
Integer minimalPlaceholderFill = null;
|
||||
if (null != templateConfig) {
|
||||
if (null != templateConfig.getAutomaticPlaceholderFill()) {
|
||||
minimalPlaceholderFill = templateConfig.getAutomaticPlaceholderFill();
|
||||
}
|
||||
}
|
||||
if (minimalPlaceholderFill == null) {
|
||||
// 未开启
|
||||
log.info("模板:{},未配置最小自动生成功能,默认不生成", templateId);
|
||||
return false;
|
||||
}
|
||||
if (minimalPlaceholderFill <= 0) {
|
||||
return true;
|
||||
}
|
||||
FaceEntity face = faceRepository.getFace(faceId);
|
||||
List<FaceSampleEntity> faceSampleList = faceRepository.getFaceSampleList(faceId);
|
||||
if (faceSampleList.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
long count;
|
||||
if (scanSource) {
|
||||
List<SourceEntity> sourceEntities = sourceMapper.listVideoByScenicFaceRelation(face.getScenicId(), faceId);
|
||||
count = sourceEntities.stream()
|
||||
.map(SourceEntity::getDeviceId)
|
||||
.distinct()
|
||||
.filter(deviceId -> placeholderList.contains(deviceId.toString()))
|
||||
.count();
|
||||
} else {
|
||||
count = faceSampleList.stream()
|
||||
.map(FaceSampleEntity::getDeviceId)
|
||||
.distinct()
|
||||
.filter(deviceId -> placeholderList.contains(deviceId.toString()))
|
||||
.count();
|
||||
}
|
||||
return count >= minimalPlaceholderFill;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user