82 lines
4.7 KiB
Markdown
82 lines
4.7 KiB
Markdown
# 需求文档
|
||
|
||
## 简介
|
||
|
||
管理员删除帖子功能允许认证等级为「管理员」的用户在小程序帖子详情页内删除任意帖子。管理员通过帖子详情页右上角已有的「……」菜单触发删除操作,经确认后执行软删除。删除后自动返回上级页面并提示「帖子已删除」,且不强制刷新列表。其他用户在帖子被删除后尝试进入详情页或回复时,均会收到「帖子已删除」的提示。
|
||
|
||
## 术语表
|
||
|
||
- **System**: 团播机构系统(LiveForum),包含小程序端和后台管理端
|
||
- **Admin**: 认证等级为「管理员」的用户,通过 certifiedType 标识
|
||
- **User**: 小程序端的普通用户(非管理员)
|
||
- **Post**: 帖子,用户发布的内容,存储在 T_Posts 表中
|
||
- **Post_Detail_Page**: 帖子详情页(post-details-page),展示帖子内容和评论列表的页面
|
||
- **More_Menu**: 帖子详情页右上角「……」按钮弹出的 action sheet 操作菜单(已在 post-reply-permission 中实现)
|
||
- **Delete_Confirm_Dialog**: 删除确认弹窗,居中 dialog 样式,包含「删除」和「取消」按钮
|
||
- **Soft_Delete**: 软删除,将帖子标记为已删除状态而非物理删除
|
||
|
||
## 需求
|
||
|
||
### 需求 1:管理员在帖子详情页触发删除
|
||
|
||
**用户故事:** 作为 Admin,我希望在任意帖子详情页通过「……」菜单删除帖子,以便管理社区内容。
|
||
|
||
#### 验收标准
|
||
|
||
1. WHILE User 的认证等级为 Admin, THE Post_Detail_Page SHALL 在非自己帖子的右上角区域显示「……」按钮
|
||
2. WHEN Admin 点击「……」按钮, THE System SHALL 从底部弹出 More_Menu,其中包含「删除帖子」选项
|
||
3. WHILE User 的认证等级不是 Admin 且 User 不是帖子作者, THE More_Menu SHALL 不显示「删除帖子」选项
|
||
4. WHEN Admin 查看自己的帖子时, THE More_Menu SHALL 同时包含已有的菜单项(帖子内回复设置、举报)和「删除帖子」选项
|
||
|
||
### 需求 2:删除确认流程
|
||
|
||
**用户故事:** 作为 Admin,我希望在删除帖子前看到确认弹窗,以防止误操作。
|
||
|
||
#### 验收标准
|
||
|
||
1. WHEN Admin 在 More_Menu 中点击「删除帖子」, THE System SHALL 关闭 More_Menu 并弹出 Delete_Confirm_Dialog
|
||
2. THE Delete_Confirm_Dialog SHALL 显示确认提示文案和「删除」、「取消」两个按钮
|
||
3. WHEN Admin 点击「取消」按钮, THE System SHALL 关闭 Delete_Confirm_Dialog 且不执行删除操作
|
||
4. WHEN Admin 点击「删除」按钮, THE System SHALL 调用删除帖子接口执行 Soft_Delete
|
||
|
||
### 需求 3:删除成功后的页面行为
|
||
|
||
**用户故事:** 作为 Admin,我希望删除帖子后自动返回上级页面并看到操作结果提示,以便确认操作完成。
|
||
|
||
#### 验收标准
|
||
|
||
1. WHEN 帖子删除成功, THE System SHALL 自动返回上级页面
|
||
2. WHEN 帖子删除成功, THE System SHALL 弹出系统提示「帖子已删除」
|
||
3. WHEN 帖子删除成功并返回上级页面后, THE System SHALL 不强制刷新帖子列表
|
||
|
||
### 需求 4:已删除帖子的访问拦截
|
||
|
||
**用户故事:** 作为 User,我希望在点击已删除的帖子时收到明确提示,以便了解帖子状态。
|
||
|
||
#### 验收标准
|
||
|
||
1. WHEN User 点击已被删除的帖子尝试进入 Post_Detail_Page, THE System SHALL 阻止进入详情页并弹出系统提示「帖子已删除」
|
||
2. WHEN User 收到「帖子已删除」提示后, THE System SHALL 不强制刷新帖子列表
|
||
|
||
### 需求 5:已删除帖子的回复拦截
|
||
|
||
**用户故事:** 作为 User,我希望在已删除帖子内回复时收到明确提示,以免浪费操作。
|
||
|
||
#### 验收标准
|
||
|
||
1. WHEN User 在已被删除的帖子内提交回复, THE System SHALL 自动返回上级页面并弹出系统提示「帖子已删除」
|
||
2. WHEN User 因帖子已删除被返回上级页面后, THE System SHALL 不强制刷新帖子列表
|
||
|
||
### 需求 6:管理员删除的后端权限与接口
|
||
|
||
**用户故事:** 作为 System,我需要在后端支持管理员删除任意帖子的权限校验,以确保只有管理员能执行此操作。
|
||
|
||
#### 验收标准
|
||
|
||
1. THE System SHALL 扩展现有的 DeletePosts 接口,支持管理员删除非自己的帖子
|
||
2. WHEN DeletePosts 接口收到请求, THE System SHALL 检查请求用户是否为帖子作者或 Admin
|
||
3. IF 请求用户既不是帖子作者也不是 Admin, THEN THE System SHALL 返回权限不足的错误信息
|
||
4. WHEN Admin 删除帖子成功, THE System SHALL 以 Soft_Delete 方式标记帖子为已删除状态
|
||
5. WHEN GetPostDetail 接口收到已删除帖子的请求, THE System SHALL 返回帖子已删除的状态标识
|
||
6. WHEN PublishPostComments 接口收到针对已删除帖子的评论请求, THE System SHALL 拒绝请求并返回「帖子已删除」的错误信息
|