You've already forked FrameTour-BE
feat(puzzle): 添加景区模板列表缓存功能
- 新增景区模板列表缓存KEY常量PUZZLE_TEMPLATES_BY_SCENIC_KEY - 在清除模板缓存时同步清除对应景区的模板列表缓存 - 实现listTemplateByScenic方法根据景区ID获取启用模板列表并缓存 - 实现clearTemplateByScenicCache方法清除景区模板列表缓存 - 重构人脸匹配编排器使用新的缓存方法替代原有数据库查询 - 移除过期的redisTemplate依赖
This commit is contained in:
@@ -6,6 +6,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.PuzzleTemplateEntity;
|
||||
import com.ycwl.basic.puzzle.repository.PuzzleRepository;
|
||||
import com.ycwl.basic.puzzle.service.IPuzzleGenerateService;
|
||||
import com.ycwl.basic.puzzle.service.IPuzzleTemplateService;
|
||||
|
||||
@@ -102,9 +104,9 @@ public class FaceMatchingOrchestrator {
|
||||
@Autowired
|
||||
private IPuzzleGenerateService puzzleGenerateService;
|
||||
@Autowired
|
||||
private RedisTemplate<String, String> redisTemplate;
|
||||
@Autowired
|
||||
private FaceStatusManager faceStatusManager;
|
||||
@Autowired
|
||||
private PuzzleRepository puzzleRepository;
|
||||
|
||||
/**
|
||||
* 编排人脸匹配的完整流程
|
||||
@@ -364,17 +366,8 @@ public class FaceMatchingOrchestrator {
|
||||
* @return
|
||||
*/
|
||||
private void asyncGeneratePuzzleTemplate(Long scenicId, Long faceId, Long memberId, String scene) {
|
||||
if (redisTemplate.hasKey("puzzle_generated:face:" + faceId)) {
|
||||
return;
|
||||
}
|
||||
redisTemplate.opsForValue().set(
|
||||
"puzzle_generated:face:" + faceId,
|
||||
"1",
|
||||
60 * 10, TimeUnit.SECONDS);
|
||||
|
||||
// 查询该景区所有启用状态的拼图模板
|
||||
List<PuzzleTemplateDTO> templateList = puzzleTemplateService.listTemplates(
|
||||
scenicId, null, 1); // 查询启用状态的模板
|
||||
List<PuzzleTemplateEntity> templateList = puzzleRepository.listTemplateByScenic(scenicId); // 查询启用状态的模板
|
||||
|
||||
if (templateList == null || templateList.isEmpty()) {
|
||||
log.debug("景区不存在启用的拼图模板,跳过生成: scenicId={}", scenicId);
|
||||
|
||||
Reference in New Issue
Block a user