You've already forked FrameTour-BE
feat(puzzle): 添加拼图生成记录检查逻辑
- 引入 PuzzleGenerationRecordEntity 和 PuzzleGenerationRecordMapper - 在人脸匹配编排流程中查询已有拼图生成记录 - 增加模板重复生成判断逻辑,避免重复处理 - 跳过已生成模板并记录日志提示
This commit is contained in:
@@ -4,6 +4,8 @@ import com.ycwl.basic.integration.scenic.dto.scenic.ScenicV2DTO;
|
||||
import com.ycwl.basic.puzzle.dto.PuzzleGenerateRequest;
|
||||
import com.ycwl.basic.puzzle.dto.PuzzleGenerateResponse;
|
||||
import com.ycwl.basic.puzzle.dto.PuzzleTemplateDTO;
|
||||
import com.ycwl.basic.puzzle.entity.PuzzleGenerationRecordEntity;
|
||||
import com.ycwl.basic.puzzle.mapper.PuzzleGenerationRecordMapper;
|
||||
import com.ycwl.basic.puzzle.service.IPuzzleGenerateService;
|
||||
import com.ycwl.basic.puzzle.service.IPuzzleTemplateService;
|
||||
|
||||
@@ -93,6 +95,8 @@ public class FaceMatchingOrchestrator {
|
||||
private IPuzzleTemplateService puzzleTemplateService;
|
||||
@Autowired
|
||||
private IPuzzleGenerateService puzzleGenerateService;
|
||||
@Autowired
|
||||
private PuzzleGenerationRecordMapper puzzleGenerationRecordMapper;
|
||||
|
||||
/**
|
||||
* 编排人脸匹配的完整流程
|
||||
@@ -365,6 +369,8 @@ public class FaceMatchingOrchestrator {
|
||||
return;
|
||||
}
|
||||
ScenicV2DTO scenicBasic = scenicRepository.getScenicBasic(face.getScenicId());
|
||||
List<PuzzleGenerationRecordEntity> records = puzzleGenerationRecordMapper.listByFaceId(faceId);
|
||||
|
||||
// 准备公共动态数据
|
||||
Map<String, String> baseDynamicData = new HashMap<>();
|
||||
if (face.getFaceUrl() != null) {
|
||||
@@ -381,6 +387,11 @@ public class FaceMatchingOrchestrator {
|
||||
int failCount = 0;
|
||||
for (PuzzleTemplateDTO template : templateList) {
|
||||
try {
|
||||
boolean anyMatch = records.stream().anyMatch(record -> record.getTemplateCode().equals(template.getCode()));
|
||||
if (anyMatch) {
|
||||
log.info("模板已生成,跳过");
|
||||
continue;
|
||||
}
|
||||
log.info("开始生成拼图: scenicId={}, templateCode={}, templateName={}",
|
||||
scenicId, template.getCode(), template.getName());
|
||||
|
||||
|
||||
Reference in New Issue
Block a user