优化是否能生成判断逻辑

This commit is contained in:
2025-01-11 16:13:19 +08:00
parent ad9e91cd7a
commit 0d2c92e8e1
18 changed files with 150 additions and 77 deletions

View File

@ -2,10 +2,19 @@ package com.ycwl.basic.repository;
import com.ycwl.basic.mapper.FaceMapper;
import com.ycwl.basic.mapper.FaceSampleMapper;
import com.ycwl.basic.model.pc.face.entity.FaceEntity;
import com.ycwl.basic.model.pc.faceSample.entity.FaceSampleEntity;
import com.ycwl.basic.model.pc.faceSample.resp.FaceSampleRespVO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
@Component
public class FaceRepository {
@Autowired
@ -14,4 +23,15 @@ public class FaceRepository {
private FaceMapper faceMapper;
@Autowired
private FaceSampleMapper faceSampleMapper;
public List<FaceSampleEntity> getFaceSampleList(Long faceId) {
FaceEntity face = faceMapper.get(faceId);
if (face == null) {
return Collections.emptyList();
}
if (StringUtils.isBlank(face.getMatchSampleIds())) {
return Collections.emptyList();
}
return faceSampleMapper.listByIds(Arrays.stream(face.getMatchSampleIds().split(",")).map(Long::valueOf).collect(Collectors.toList()));
}
}

View File

@ -4,8 +4,6 @@ import com.alibaba.fastjson.JSONObject;
import com.ycwl.basic.mapper.FaceMapper;
import com.ycwl.basic.mapper.FaceSampleMapper;
import com.ycwl.basic.mapper.TemplateMapper;
import com.ycwl.basic.model.pc.face.resp.FaceRespVO;
import com.ycwl.basic.model.pc.faceSample.resp.FaceSampleRespVO;
import com.ycwl.basic.model.pc.template.entity.TemplateConfigEntity;
import com.ycwl.basic.model.pc.template.resp.TemplateRespVO;
import com.ycwl.basic.utils.SnowFlakeUtil;
@ -13,11 +11,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service // 临时这么用
@ -35,29 +30,13 @@ public class TemplateRepository {
public static final String TEMPLATE_CONFIG_CACHE_KEY = "template:%s:config";
public boolean determineTemplateCanGenerate(Long templateId, Long faceId) {
public List<String> getTemplatePlaceholder(Long templateId) {
TemplateRespVO template = getTemplate(templateId);
Map<String, Boolean> map = new HashMap<>();
for (TemplateRespVO child : template.getChildren()) {
if (child.getIsPlaceholder() == 1) {
map.put(child.getSourceUrl(), false);
}
}
TemplateConfigEntity templateConfig = templateMapper.getConfig(templateId);
if (0 == templateConfig.getMinimalPlaceholderFill()) {
return true;
}
FaceRespVO face = faceMapper.getById(faceId);
if (face.getMatchSampleIds() == null) {
return false;
}
List<FaceSampleRespVO> faceSample = faceSampleMapper.listByIds(Arrays.stream(face.getMatchSampleIds().split(",")).map(Long::valueOf).collect(Collectors.toList()));
faceSample.stream().collect(Collectors.groupingBy(FaceSampleRespVO::getDeviceId)).forEach((deviceId, value) -> {
if (map.containsKey(deviceId.toString())) {
map.put(deviceId.toString(), true);
}
});
return map.values().stream().filter(item -> item).count() >= templateConfig.getMinimalPlaceholderFill();
return template.getChildren().stream()
.filter(item -> item.getIsPlaceholder() == 1)
.map(TemplateRespVO::getSourceUrl)
.distinct()
.collect(Collectors.toList());
}
public List<TemplateRespVO> getTemplateListByScenicId(Long scenicId) {