# 听书后台管理功能说明 ## 一、数据库结构 听书相关的数据表已在 `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. **编译 & 启动后端** ```bash cd book mvn spring-boot:run ``` 3. **启动后台前端** ```bash 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。