书籍系列 admin 接口
基本信息
- 模块:book
- 资源:书籍系列
- 端:admin
- 鉴权:
PrivateGroup,需要 JWT + Casbin
- 审计:创建、更新、单删、批量删除启用
OperationRecord
- 前缀:
/book
- 实体模型:
book.BookSeries
- 搜索入参:
bookReq.BookSeriesSearch
- 详情响应:
bookRes.BookSeriesResponse
- 列表项:
book.BookSeries
- 返回:写操作
response.Response{msg};详情 response.Response{data};列表 response.PageResult
- 删除策略:硬删
CRUD
创建书籍系列
- Method:
POST
- Path:
/book/createBookSeries
- Handler:
BookSeriesApi.CreateBookSeries
- Service:
BookSeriesService.CreateBookSeries
- 审计:是
Request Body book.BookSeries
| 字段 |
类型 |
必填 |
规则 |
说明 |
| name |
string |
是 |
非空,最大长度 128 |
系列名称 |
| coverUrl |
string |
否 |
最大长度 500 |
系列封面图片 URL |
| intro |
string |
否 |
文本 |
系列简介 |
| isEnabled |
bool |
否 |
默认 true |
系列是否启用 |
Response
规则
- 创建请求禁止传服务端生成字段:
id/createdAt/updatedAt。
name 写入 book_series.name,数据库要求非空。
isEnabled 未传时按数据库默认值 true 落库。
删除书籍系列
- Method:
DELETE
- Path:
/book/deleteBookSeries
- Handler:
BookSeriesApi.DeleteBookSeries
- Service:
BookSeriesService.DeleteBookSeries
- 审计:是
Request Query
| 参数 |
类型 |
必填 |
规则 |
说明 |
| id |
int |
是 |
> 0 |
系列 ID |
Response
规则
- 删除策略为硬删,删除后记录不再保留在
book_series 表。
批量删除书籍系列
- Method:
DELETE
- Path:
/book/deleteBookSeriesByIds
- Handler:
BookSeriesApi.DeleteBookSeriesByIds
- Service:
BookSeriesService.DeleteBookSeriesByIds
- 审计:是
Request Query
| 参数 |
类型 |
必填 |
规则 |
说明 |
| ids |
int[] |
二选一 |
非空,元素均 > 0 |
系列 ID 数组 |
| ids[] |
int[] |
二选一 |
非空,元素均 > 0 |
系列 ID 数组,兼容数组写法 |
Response
规则
ids 与 ids[] 二选一。
- 删除策略为硬删,删除后记录不再保留在
book_series 表。
更新书籍系列
- Method:
PUT
- Path:
/book/updateBookSeries
- Handler:
BookSeriesApi.UpdateBookSeries
- Service:
BookSeriesService.UpdateBookSeries
- 审计:是
Request Body book.BookSeries
| 字段 |
类型 |
必填 |
规则 |
说明 |
| id |
uint |
是 |
> 0 |
系列 ID |
| name |
string |
是 |
非空,最大长度 128 |
系列名称 |
| coverUrl |
string |
否 |
最大长度 500 |
系列封面图片 URL |
| intro |
string |
否 |
文本 |
系列简介 |
| isEnabled |
bool |
否 |
true/false |
系列是否启用 |
Response
规则
- 更新请求禁止传服务端维护字段:
createdAt/updatedAt。
- 当前 Service 使用实体
Save,前端应传完整可编辑实体,避免未传字段被零值覆盖。
id 不能为空;name 写入 book_series.name,数据库要求非空。
查询书籍系列详情
- Method:
GET
- Path:
/book/findBookSeries
- Handler:
BookSeriesApi.FindBookSeries
- Service:
BookSeriesService.GetBookSeries
- 审计:否
Request Query
| 参数 |
类型 |
必填 |
规则 |
说明 |
| id |
int |
是 |
> 0 |
系列 ID |
Response bookRes.BookSeriesResponse
| 字段 |
类型 |
说明 |
| bookSeries |
object |
书籍系列实体 |
| bookSeries.id |
uint |
系列 ID |
| bookSeries.createdAt |
time |
创建时间 |
| bookSeries.updatedAt |
time |
更新时间 |
| bookSeries.name |
string |
系列名称 |
| bookSeries.coverUrl |
string |
系列封面图片 URL |
| bookSeries.intro |
string |
系列简介 |
| bookSeries.isEnabled |
bool |
系列是否启用 |
分页查询书籍系列列表
- Method:
GET
- Path:
/book/getBookSeriesList
- Handler:
BookSeriesApi.GetBookSeriesList
- Service:
BookSeriesService.GetBookSeriesInfoList
- 审计:否
Request Query bookReq.BookSeriesSearch
| 参数 |
类型 |
必填 |
规则 |
说明 |
| page |
int |
否 |
默认 1,最小 1 |
页码 |
| pageSize |
int |
否 |
默认 10,最大 100 |
每页数量 |
| keyword |
string |
否 |
模糊匹配 name |
关键字 |
| name |
string |
否 |
模糊匹配 name |
系列名称 |
| isEnabled |
bool |
否 |
true/false |
系列是否启用 |
| 字段 |
类型 |
说明 |
| list |
array |
book.BookSeries 列表 |
| list[].id |
uint |
系列 ID |
| list[].createdAt |
time |
创建时间 |
| list[].updatedAt |
time |
更新时间 |
| list[].name |
string |
系列名称 |
| list[].coverUrl |
string |
系列封面图片 URL |
| list[].intro |
string |
系列简介 |
| list[].isEnabled |
bool |
系列是否启用 |
| total |
int64 |
总数 |
| page |
int |
当前页 |
| pageSize |
int |
每页数量 |
规则
- 列表默认排序:
id desc。
keyword 与 name 同时传入时,两个条件按 AND 叠加过滤。
规则
- admin 端书籍系列 CRUD 挂载在
PrivateGroup,统一需要 JWT + Casbin。
- 写操作挂载
middleware.OperationRecord();读操作不挂操作审计。
isEnabled 当前按实体和 SQL 使用 bool:true 表示启用,false 表示禁用。
book_series.name 建普通索引,不定义唯一约束;接口不要求系列名称全局唯一。
book_series 为硬删表,当前接口不提供软删除恢复能力。