听书后台管理功能说明.md 4.3 KB

听书后台管理功能说明

一、数据库结构

听书相关的数据表已在 book/src/main/resources/db/audiobook_schema.sql 中定义,主要包括:

  • audiobooks:听书专辑表,存储书名、作者、主播、封面、简介、分类、上下架状态、VIP/免费标记等字段。
  • audiobook_chapters:听书章节表,关联 audiobooks,包含章节标题、音频地址、时长、是否免费等信息。
  • user_listening_history:用户听书历史表,用于记录最近播放记录。
  • user_listening_progress:用户听书进度表,记录播放位置与完成状态。

示例数据可参见:

  • book/src/main/resources/db/audiobook_sample_data.sql
  • book/src/main/resources/db/audiobook_complete_setup.sql

二、后台接口

新增了后台管理端的听书接口,路径前缀为 /api/admin/audiobook

接口 方法 说明
/api/admin/audiobook/list GET 分页查询听书(支持关键词、分类、状态、VIP/免费筛选)
/api/admin/audiobook/{id} GET 根据 ID 查询听书详情
/api/admin/audiobook POST 新建听书专辑
/api/admin/audiobook/{id} PUT 更新听书专辑
/api/admin/audiobook/{id} DELETE 删除听书专辑
/api/admin/audiobook/batch DELETE 批量删除听书专辑
/api/admin/audiobook/{id}/publish PUT 上架听书
/api/admin/audiobook/{id}/unpublish PUT 下架听书
/api/admin/audiobook/batch/publish PUT 批量上架听书
/api/admin/audiobook/batch/unpublish PUT 批量下架听书

后台服务类:com.yu.book.admin.service.AdminAudiobookService

三、后台管理界面

book/book-admin 前端中新增了“听书管理”页面:

  • 新页面:src/main/resources/static/pages/audiobooks.html
  • 导航将“电子书管理”“听书管理”并列展示,便于区分层级。
  • 页面功能:
    • 列表展示听书专辑,支持搜索、分类筛选、状态筛选以及 VIP/免费筛选。
    • 支持新增、编辑、删除、批量删除、上架、下架等操作。
    • 显示浏览量、播放量、点赞数、章节数、总时长等统计信息。
  • 新增了对应的 API 方法:book/book-admin/src/main/resources/static/utils/api.js

四、小程序前端联调

以下页面已改为使用后台真实数据:

  • books/pages/listen/listen.vue:首页听书推荐、最近上新、猜你喜欢。
  • books/pages/more-listen-books/more-listen-books.vue:按类型(上新、推荐、热门、畅听榜)加载更多听书内容。
  • books/pages/audio-novel/audio-novel.vue:使用推荐接口展示有声小说列表。
  • books/pages/portable-listen/portable-listen.vue:使用热门接口展示随身听列表。

所有播放入口统一跳转到 listen-detail 页面,由用户选择章节后进入 player 页面,确保章节 ID 与音频地址准确。

五、使用指引

  1. 初始化数据库

    • 执行 audiobook_schema.sql 创建所需表结构。
    • 可选择执行 audiobook_sample_data.sql 导入示例数据。
  2. 编译 & 启动后端

    cd book
    mvn spring-boot:run
    
  3. 启动后台前端

    cd book/book-admin
    npm install
    npm run dev
    

    使用管理员账号登录(默认 admin / admin123)。

  4. 联调验证

    • 在后台添加几条听书数据。
    • 打开小程序听书页面,确认新增数据正常展示。
    • 测试上下架、编辑、删除等操作是否同步到前端。

六、相关文件索引

  • 后端业务:

    • com/yu/book/admin/dto/AudiobookManageDTO.java
    • com/yu/book/admin/vo/AdminAudiobookVO.java
    • com/yu/book/admin/service/AdminAudiobookService.java
    • com/yu/book/admin/controller/AdminAudiobookController.java
    • com/yu/book/mapper/AudiobookMapper.java & mapper/AudiobookMapper.xml
  • 后台前端:

    • static/pages/audiobooks.html
    • static/utils/api.js
  • 小程序页面:

    • books/pages/listen/listen.vue
    • books/pages/more-listen-books/more-listen-books.vue
    • books/pages/audio-novel/audio-novel.vue
    • books/pages/portable-listen/portable-listen.vue

如需扩展章节管理,可在后台中继续添加 audiobook_chapters 的管理界面,复用现有 Mapper。