feat(puzzle): 实现拼图模板缓存功能

- 集成 PuzzleRepository 缓存层替代直接数据库查询
- 在 PriceBiz 中使用缓存查询拼图模板数据
- 在 AppTemplateController 中添加景区模板封面URL批量获取接口
- 在 PuzzleTemplateServiceImpl 中实现模板增改时的缓存清理逻辑
- 在 FaceServiceImpl 中使用缓存查询拼图模板
- 优化模板查询性能并减少数据库压力
This commit is contained in:
2026-01-15 17:01:17 +08:00
parent 2fb6aa42cf
commit 63d31d69a9
4 changed files with 67 additions and 8 deletions

View File

@@ -56,6 +56,7 @@ import com.ycwl.basic.puzzle.entity.PuzzleGenerationRecordEntity;
import com.ycwl.basic.puzzle.entity.PuzzleTemplateEntity;
import com.ycwl.basic.puzzle.mapper.PuzzleGenerationRecordMapper;
import com.ycwl.basic.puzzle.mapper.PuzzleTemplateMapper;
import com.ycwl.basic.puzzle.repository.PuzzleRepository;
import com.ycwl.basic.repository.DeviceRepository;
import com.ycwl.basic.repository.FaceRepository;
import com.ycwl.basic.repository.MemberRelationRepository;
@@ -204,6 +205,8 @@ public class FaceServiceImpl implements FaceService {
@Autowired
private PuzzleTemplateMapper puzzleTemplateMapper;
@Autowired
private PuzzleRepository puzzleRepository;
@Autowired
private FaceDetectLogAiCamService faceDetectLogAiCamService;
@Autowired
private OrderRepository orderRepository;
@@ -523,7 +526,8 @@ public class FaceServiceImpl implements FaceService {
}
}).collect(Collectors.toList());
List<PuzzleTemplateEntity> puzzleTemplateEntityList = puzzleTemplateMapper.list(face.getScenicId(), null, 1);
// 拼图模板(使用缓存)
List<PuzzleTemplateEntity> puzzleTemplateEntityList = puzzleRepository.listTemplateByScenic(face.getScenicId());
if (!puzzleTemplateEntityList.isEmpty()) {
List<PuzzleGenerationRecordEntity> records = puzzleGenerationRecordMapper.listByFaceId(faceId);
PuzzleTemplateEntity template = puzzleTemplateEntityList.getFirst();