第三方角色和审核功能说明
📋 功能概述
根据新的需求,系统已实现以下功能:
- 取消普通管理员:只保留超级管理员(userRole=2)
- 新增第三方角色:userRole=3,可在小程序端上传和管理书籍
- 书籍审核机制:第三方上传的书籍需要超级管理员审核
- 删除审核机制:第三方删除书籍需要超级管理员审核
🔐 角色说明
用户角色(userRole)
| 角色值 |
角色名称 |
说明 |
登录方式 |
| 0 |
普通用户 |
只能浏览和阅读书籍 |
小程序端 |
| 2 |
超级管理员 |
后端管理端,审核书籍,管理用户和内容 |
Web端(需人脸验证) |
| 3 |
第三方 |
小程序端,上传和管理自己的书籍 |
小程序端 |
📚 书籍状态说明
审核状态(auditStatus)
| 状态值 |
状态名称 |
说明 |
| 0 |
待审核 |
第三方刚上传,等待超级管理员审核 |
| 1 |
已通过 |
审核通过,可以上架显示 |
| 2 |
已驳回 |
审核被驳回,需要修改后重新提交 |
可见状态(isVisible)
| 状态值 |
状态名称 |
说明 |
| 0 |
隐藏/下架 |
用户不可见 |
| 1 |
可见/上架 |
用户可见(需同时满足:审核通过) |
删除状态(deleteStatus)
| 状态值 |
状态名称 |
说明 |
| 0 |
正常 |
正常状态 |
| 1 |
待删除审核 |
第三方申请删除,等待超级管理员审核 |
| 2 |
已删除 |
已删除(软删除) |
🔄 业务流程
1. 第三方上传书籍流程
第三方在小程序端上传书籍
↓
POST /api/app/third-party/content
↓
设置状态:auditStatus=0(待审核),isVisible=0(隐藏)
↓
等待超级管理员审核
↓
超级管理员在后端审核
↓
通过:auditStatus=1,isVisible=1(上架)
驳回:auditStatus=2,记录rejectReason
2. 第三方编辑书籍流程
第三方编辑自己的书籍
↓
PUT /api/app/third-party/content/{id}
↓
如果原书籍已通过审核,编辑后需要重新审核
↓
设置状态:auditStatus=0(待审核),isVisible=0(隐藏)
↓
等待超级管理员重新审核
3. 第三方下架书籍流程
第三方下架自己的书籍
↓
POST /api/app/third-party/content/{id}/offline
↓
设置状态:isVisible=0(隐藏)
↓
用户端不再显示该书籍
4. 第三方上架书籍流程
第三方上架自己的书籍(仅已通过审核的)
↓
POST /api/app/third-party/content/{id}/online
↓
设置状态:isVisible=1(可见)
↓
用户端可以查看该书籍
5. 第三方删除书籍流程
第三方申请删除书籍
↓
POST /api/app/third-party/content/{id}/delete-request
↓
设置状态:deleteStatus=1(待删除审核),isVisible=0(隐藏)
↓
等待超级管理员审核
↓
超级管理员审核删除申请
↓
批准:deleteStatus=2(已删除)
拒绝:deleteStatus=0(恢复正常)
6. 超级管理员审核流程
超级管理员查看待审核书籍
↓
GET /api/admin/content/page?auditStatus=0
↓
审核通过:
POST /api/admin/content/audit/approve/{id}
↓
审核驳回:
POST /api/admin/content/audit/reject/{id}?rejectReason=理由
📁 代码文件位置
实体类
| 文件 |
说明 |
book/src/main/java/com/zhentao/pojo/User.java |
用户实体,userRole字段已更新 |
book/src/main/java/com/zhentao/pojo/Content.java |
内容实体,已添加审核相关字段 |
Controller
| 文件 |
说明 |
book/src/main/java/com/zhentao/controller/AdminController.java |
管理员登录(只允许超级管理员) |
book/src/main/java/com/zhentao/controller/UserAuthController.java |
用户登录(允许普通用户和第三方) |
book/src/main/java/com/zhentao/controller/ContentController.java |
超级管理员内容管理 |
book/src/main/java/com/zhentao/controller/ContentAuditController.java |
新增:书籍审核功能 |
book/src/main/java/com/zhentao/controller/app/ThirdPartyContentController.java |
新增:第三方内容管理 |
book/src/main/java/com/zhentao/controller/app/AppContentController.java |
小程序端内容查询(已过滤) |
Service
| 文件 |
说明 |
book/src/main/java/com/zhentao/service/ContentService.java |
内容服务接口 |
book/src/main/java/com/zhentao/service/impl/ContentServiceImpl.java |
内容服务实现(已添加筛选逻辑) |
工具类
| 文件 |
说明 |
book/src/main/java/com/zhentao/common/AdminSessionUtil.java |
管理员Session工具(已更新) |
🔌 API接口说明
第三方接口(小程序端)
1. 上传书籍
POST /api/app/third-party/content
Authorization: Bearer {token}
Content-Type: application/json
{
"title": "书名",
"author": "作者",
"categoryId": 1,
"coverUrl": "封面URL",
"description": "简介",
"contentType": 1,
...
}
2. 编辑书籍
PUT /api/app/third-party/content/{id}
Authorization: Bearer {token}
3. 下架书籍
POST /api/app/third-party/content/{id}/offline
Authorization: Bearer {token}
4. 上架书籍
POST /api/app/third-party/content/{id}/online
Authorization: Bearer {token}
5. 申请删除
POST /api/app/third-party/content/{id}/delete-request
Authorization: Bearer {token}
6. 查看自己的书籍列表
GET /api/app/third-party/content/page?current=1&size=10
Authorization: Bearer {token}
7. 查看统计信息
GET /api/app/third-party/content/statistics
Authorization: Bearer {token}
超级管理员接口(后端Web端)
1. 审核通过
POST /api/admin/content/audit/approve/{id}
需要人脸验证
2. 审核驳回
POST /api/admin/content/audit/reject/{id}?rejectReason=驳回理由
需要人脸验证
3. 批准删除申请
POST /api/admin/content/audit/delete-approve/{id}
需要人脸验证
4. 拒绝删除申请
POST /api/admin/content/audit/delete-reject/{id}
需要人脸验证
5. 查看书籍列表(支持筛选)
GET /api/admin/content/page?auditStatus=0&deleteStatus=1
auditStatus: 0待审核, 1已通过, 2已驳回
deleteStatus: 0正常, 1待删除审核, 2已删除
🗄️ 数据库变更
执行迁移脚本
执行文件:book/数据库迁移-添加审核字段.sql
该脚本会:
- 添加
publisher_id 字段(第三方发布者ID)
- 添加
audit_status 字段(审核状态)
- 添加
reject_reason 字段(驳回理由)
- 添加
is_visible 字段(是否可见)
- 添加
delete_status 字段(删除状态)
- 为现有数据设置默认值
- 创建索引提高查询性能
✅ 功能验证清单
第三方功能
超级管理员功能
小程序端用户功能
🔒 权限说明
第三方权限
- ✅ 只能操作自己上传的书籍(通过publisherId验证)
- ✅ 上传的书籍默认待审核
- ✅ 编辑已通过审核的书籍后需要重新审核
- ✅ 删除需要超级管理员审核
- ❌ 不能直接删除书籍
- ❌ 不能操作其他第三方的书籍
超级管理员权限
- ✅ 可以审核所有第三方上传的书籍
- ✅ 可以直接删除任何书籍
- ✅ 可以审核删除申请
- ✅ 可以查看所有书籍(包括待审核、已驳回等)
- ✅ 发布的内容自动通过审核并上架
📝 注意事项
- 数据库迁移:执行迁移脚本前请备份数据库
- 现有数据:迁移脚本会将现有数据设置为已通过审核状态
- 人脸验证:超级管理员的所有审核操作都需要人脸验证
- 软删除:删除操作是软删除,数据不会真正删除
- 权限验证:所有接口都有严格的权限验证
文档版本: v1.0
最后更新: 2024年