Files
xuanzhi-service/server/.ai-specs/doc-api/admin/book_author_relation.md
2026-04-27 10:12:21 +08:00

5.3 KiB
Raw Blame History

书籍作者关系 admin 接口

基本信息

  • 模块book
  • 资源:书籍作者关系
  • admin
  • 鉴权:PrivateGroup,需要 JWT + Casbin
  • 审计:创建、更新、单删、批量删除启用 OperationRecord
  • 前缀:/book
  • 实体模型:book.BookAuthorRelation
  • 搜索入参:bookReq.BookAuthorRelationSearch
  • 详情响应:bookRes.BookAuthorRelationResponse
  • 列表项:bookRes.BookAuthorRelationListItem
  • 返回:写操作 response.Response{msg};详情 response.Response{data};列表 response.PageResult
  • 删除策略:硬删

CRUD

创建书籍作者关系

  • MethodPOST
  • Path/book/createBookAuthorRelation
  • HandlerBookAuthorRelationApi.CreateBookAuthorRelation
  • ServiceBookAuthorRelationService.CreateBookAuthorRelation
  • 审计:是

Request Body book.BookAuthorRelation

字段 类型 必填 规则 说明
bookId uint > 0 关联书籍 ID
authorId uint > 0 关联作者 ID
authorSort int 未传或为 0 时默认 1;最终值必须 > 0 展示顺序

Response

  • response.Response{msg}

规则

  • 创建请求禁止传 id/createdAt/updatedAt
  • 创建前必须校验 bookId + authorId 未被占用。

删除书籍作者关系

  • MethodDELETE
  • Path/book/deleteBookAuthorRelation
  • HandlerBookAuthorRelationApi.DeleteBookAuthorRelation
  • ServiceBookAuthorRelationService.DeleteBookAuthorRelation
  • 审计:是

Request Query

参数 类型 必填 规则 说明
id int > 0 关系 ID

Response

  • response.Response{msg}

批量删除书籍作者关系

  • MethodDELETE
  • Path/book/deleteBookAuthorRelationByIds
  • HandlerBookAuthorRelationApi.DeleteBookAuthorRelationByIds
  • ServiceBookAuthorRelationService.DeleteBookAuthorRelationByIds
  • 审计:是

Request Query

参数 类型 必填 规则 说明
ids int[] 二选一 非空,元素均 > 0 关系 ID 数组
ids[] int[] 二选一 非空,元素均 > 0 关系 ID 数组,兼容数组写法

Response

  • response.Response{msg}

规则

  • idsids[] 二选一。

更新书籍作者关系

  • MethodPUT
  • Path/book/updateBookAuthorRelation
  • HandlerBookAuthorRelationApi.UpdateBookAuthorRelation
  • ServiceBookAuthorRelationService.UpdateBookAuthorRelation
  • 审计:是

Request Body book.BookAuthorRelation

字段 类型 必填 规则 说明
id uint > 0 关系 ID
bookId uint > 0 关联书籍 ID
authorId uint > 0 关联作者 ID
authorSort int > 0 展示顺序

Response

  • response.Response{msg}

规则

  • 更新请求禁止传 createdAt/updatedAt
  • 更新前必须校验 bookId + authorId 未被其他记录占用。
  • 更新为实体全量保存,前端应传完整可编辑实体,避免字段被零值覆盖。

查询书籍作者关系详情

  • MethodGET
  • Path/book/findBookAuthorRelation
  • HandlerBookAuthorRelationApi.FindBookAuthorRelation
  • ServiceBookAuthorRelationService.GetBookAuthorRelation
  • 审计:否

Request Query

参数 类型 必填 规则 说明
id int > 0 关系 ID

Response bookRes.BookAuthorRelationResponse

字段 类型 说明
bookAuthorRelation object 关系实体
bookAuthorRelation.id uint 关系 ID
bookAuthorRelation.bookId uint 书籍 ID
bookAuthorRelation.authorId uint 作者 ID
bookAuthorRelation.authorSort int 作者展示顺序
bookAuthorRelation.createdAt string 创建时间
bookAuthorRelation.updatedAt string 更新时间

分页查询书籍作者关系列表

  • MethodGET
  • Path/book/getBookAuthorRelationList
  • HandlerBookAuthorRelationApi.GetBookAuthorRelationList
  • ServiceBookAuthorRelationService.GetBookAuthorRelationInfoList
  • 审计:否

Request Query bookReq.BookAuthorRelationSearch

参数 类型 必填 规则 说明
page int 默认 1,最小 1 页码
pageSize int 默认 10,最大 100 每页数量
bookId uint > 0 按书籍 ID 精确筛选
authorId uint > 0 按作者 ID 精确筛选

Response response.PageResult

字段 类型 说明
list array bookRes.BookAuthorRelationListItem 列表
list[].id uint 关系 ID
list[].bookId uint 书籍 ID
list[].authorId uint 作者 ID
list[].authorSort int 作者展示顺序
list[].authorName string 作者名称展示字段
total int64 总数
page int 当前页
pageSize int 每页数量

规则

  • 列表默认排序:bookId asc, authorSort asc, id desc

规则

  • 默认鉴权为 PrivateGroup,需要 JWT + Casbin
  • bookId + authorId 唯一,对应数据库唯一索引 uk_book_author_relation_book_id_author_id
  • authorSort 必须大于 0
  • 创建时 authorSort 未传或为 0 时默认 1
  • 删除策略为硬删。