第三方角色和审核功能说明.md 8.9 KB

第三方角色和审核功能说明

📋 功能概述

根据新的需求,系统已实现以下功能:

  1. 取消普通管理员:只保留超级管理员(userRole=2)
  2. 新增第三方角色:userRole=3,可在小程序端上传和管理书籍
  3. 书籍审核机制:第三方上传的书籍需要超级管理员审核
  4. 删除审核机制:第三方删除书籍需要超级管理员审核

🔐 角色说明

用户角色(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

该脚本会:

  1. 添加 publisher_id 字段(第三方发布者ID)
  2. 添加 audit_status 字段(审核状态)
  3. 添加 reject_reason 字段(驳回理由)
  4. 添加 is_visible 字段(是否可见)
  5. 添加 delete_status 字段(删除状态)
  6. 为现有数据设置默认值
  7. 创建索引提高查询性能

✅ 功能验证清单

第三方功能

  • 第三方可以在小程序端登录
  • 第三方可以上传书籍(状态为待审核)
  • 第三方可以查看自己的书籍列表
  • 第三方可以编辑自己的书籍(编辑后需重新审核)
  • 第三方可以下架自己的书籍
  • 第三方可以上架已通过审核的书籍
  • 第三方可以申请删除书籍
  • 第三方可以查看统计信息

超级管理员功能

  • 超级管理员可以登录后端管理端(需人脸验证)
  • 超级管理员可以查看所有书籍(支持筛选)
  • 超级管理员可以审核通过书籍
  • 超级管理员可以驳回书籍(需填写理由)
  • 超级管理员可以批准删除申请
  • 超级管理员可以拒绝删除申请
  • 超级管理员可以直接删除书籍

小程序端用户功能

  • 用户只能看到已通过审核且已上架的书籍
  • 用户看不到待审核、已驳回、已下架的书籍
  • 用户看不到已删除的书籍

🔒 权限说明

第三方权限

  • ✅ 只能操作自己上传的书籍(通过publisherId验证)
  • ✅ 上传的书籍默认待审核
  • ✅ 编辑已通过审核的书籍后需要重新审核
  • ✅ 删除需要超级管理员审核
  • ❌ 不能直接删除书籍
  • ❌ 不能操作其他第三方的书籍

超级管理员权限

  • ✅ 可以审核所有第三方上传的书籍
  • ✅ 可以直接删除任何书籍
  • ✅ 可以审核删除申请
  • ✅ 可以查看所有书籍(包括待审核、已驳回等)
  • ✅ 发布的内容自动通过审核并上架

📝 注意事项

  1. 数据库迁移:执行迁移脚本前请备份数据库
  2. 现有数据:迁移脚本会将现有数据设置为已通过审核状态
  3. 人脸验证:超级管理员的所有审核操作都需要人脸验证
  4. 软删除:删除操作是软删除,数据不会真正删除
  5. 权限验证:所有接口都有严格的权限验证

文档版本: v1.0
最后更新: 2024年