feat(puzzle): 添加模板分页查询功能并优化DTO序列化

- 在PuzzleTemplateController中新增pageTemplates接口支持分页查询
- 为ElementCreateRequest和PuzzleElementDTO添加@JsonProperty注解优化JSON序列化
- 实现PuzzleTemplateServiceImpl中的pageTemplates分页逻辑
- 使用PageHelper实现分页查询并限制最大页面大小为100
- 在IPuzzleTemplateService接口中定义pageTemplates方法签名及文档说明
- 添加参数校验确保page和pageSize的有效性
- 返回PageResponse对象封装分页结果供前端使用
This commit is contained in:
2025-11-18 12:05:21 +08:00
parent bb2367c5a6
commit af60e95529
5 changed files with 99 additions and 0 deletions

View File

@@ -1,5 +1,6 @@
package com.ycwl.basic.puzzle.controller;
import com.ycwl.basic.integration.common.response.PageResponse;
import com.ycwl.basic.puzzle.dto.ElementCreateRequest;
import com.ycwl.basic.puzzle.dto.PuzzleElementDTO;
import com.ycwl.basic.puzzle.dto.PuzzleTemplateDTO;
@@ -80,6 +81,22 @@ public class PuzzleTemplateController {
return ApiResponse.success(templates);
}
/**
* 分页获取模板列表
*/
@GetMapping("/templates/page")
public ApiResponse<PageResponse<PuzzleTemplateDTO>> pageTemplates(
@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "10") Integer pageSize,
@RequestParam(required = false) Long scenicId,
@RequestParam(required = false) String category,
@RequestParam(required = false) Integer status) {
log.debug("分页查询模板列表: page={}, pageSize={}, scenicId={}, category={}, status={}",
page, pageSize, scenicId, category, status);
PageResponse<PuzzleTemplateDTO> templates = templateService.pageTemplates(page, pageSize, scenicId, category, status);
return ApiResponse.success(templates);
}
/**
* 为模板添加单个元素
*/