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