# script_kill **Repository Path**: majun20040923/script_kill ## Basic Information - **Project Name**: script_kill - **Description**: 剧本杀 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-06-21 - **Last Updated**: 2025-06-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 剧本杀分类管理接口 ## 接口说明 本项目提供了完整的分类管理功能,包括增删改查操作。 ## 接口列表 ### 1. 获取所有分类列表 - **URL**: `GET /admin/categories/list` - **描述**: 获取所有分类的完整信息 - **返回**: 分类列表 ### 2. 根据ID获取分类详情 - **URL**: `GET /admin/categories/{id}` - **描述**: 根据分类ID获取详细信息 - **参数**: `id` - 分类ID - **返回**: 分类详情 ### 3. 新增分类 - **URL**: `POST /admin/categories` - **描述**: 新增一个分类 - **请求体**: ```json { "name": "分类名称", "sortOrder": 1 } ``` - **返回**: 操作结果 ### 4. 更新分类 - **URL**: `PUT /admin/categories` - **描述**: 更新分类信息 - **请求体**: ```json { "id": 1, "name": "更新后的分类名称", "sortOrder": 2 } ``` - **返回**: 操作结果 ### 5. 删除分类 - **URL**: `DELETE /admin/categories/{id}` - **描述**: 删除指定分类 - **参数**: `id` - 分类ID - **返回**: 操作结果 ### 6. 分页查询分类 - **URL**: `GET /admin/categories/page` - **描述**: 分页查询分类,支持按名称模糊搜索 - **参数**: - `name` (可选) - 分类名称,支持模糊查询 - `page` (默认1) - 页码 - `pageSize` (默认10) - 每页大小 - **返回**: 分页结果(使用MyBatis-Plus的Pager对象) ### 7. 根据名称模糊查询分类 - **URL**: `GET /admin/categories/getByName?name=关键词` - **描述**: 根据名称模糊查询分类 - **参数**: `name` - 分类名称关键词 - **返回**: 匹配的分类名称列表 ### 8. 获取前7个分类名称 - **URL**: `GET /admin/categories/names` - **描述**: 获取排序前7的分类名称,用于首页展示 - **返回**: 分类名称列表 ## 数据模型 ### Categories 实体 ```java public class Categories { private Long id; // 分类ID,主键 private String name; // 分类名称 private Integer sortOrder; // 显示顺序,值越小越靠前 } ``` ### Pager 分页对象 ```java public class Pager { private long total; // 总记录数 private List results; // 当前页数据 private int pageNo; // 当前页码 private int pageSize; // 每页大小 // ... 其他分页相关属性 } ``` ## 业务规则 1. **分类名称唯一性**: 分类名称不能重复 2. **排序规则**: 按sortOrder字段升序排列 3. **默认排序**: 新增分类时,如果不指定sortOrder,会自动设置为当前最大值+1 4. **删除限制**: 删除分类前会检查是否存在(TODO: 可以添加关联剧本检查) 5. **分页实现**: 使用MyBatis-Plus的Pager对象进行分页查询 ## 技术实现 ### 分页查询示例 ```java // 使用QueryChain和Pager进行分页查询 Pager pager = QueryChain.of(categoriesMapper) .like(Categories::getName, "关键词") .orderBy(Categories::getSortOrder) .paging(Pager.of(page, pageSize)); ``` ## 错误处理 所有接口都包含完整的错误处理: - 参数验证 - 业务逻辑验证 - 异常捕获和返回 ## 使用示例 ### 新增分类 ```bash curl -X POST http://localhost:8080/admin/categories \ -H "Content-Type: application/json" \ -d '{ "name": "现代", "sortOrder": 1 }' ``` ### 分页查询 ```bash curl "http://localhost:8080/admin/categories/page?page=1&pageSize=10&name=现代" ``` ### 删除分类 ```bash curl -X DELETE http://localhost:8080/admin/categories/1 ``` ## 分页响应示例 ```json { "code": 1, "msg": "success", "data": { "total": 25, "results": [ { "id": 1, "name": "现代", "sortOrder": 1 }, { "id": 2, "name": "古风", "sortOrder": 2 } ], "pageNo": 1, "pageSize": 10 } } ```