6.4 KiB
6.4 KiB
需求文档
简介
发帖和回复时间间隔功能允许管理员在后台管理端根据不同的 SK 认证等级,分别配置发帖和回复帖子的最小时间间隔。同一用户在上次发帖或回复后,必须等待对应认证等级所设定的时间间隔后才能再次操作。前端和后端均需进行间隔校验,前端在倒计时结束前禁用操作按钮并显示剩余秒数,后端在接口层拦截不满足间隔要求的请求。
术语表
- System: 团播机构系统(LiveForum),包含小程序端、后台管理端和后端 API
- Admin_Panel: 后台管理端(ZR.Vue),管理员用于配置系统参数的 Web 管理界面
- User: 小程序端用户,拥有特定的认证等级
- Certification_Type: 认证等级,存储在 T_CertificationTypes 表中,如粉丝认证、SK 主播认证、管理员认证等
- Post_Interval: 发帖时间间隔,同一用户两次发帖之间的最小等待时间(单位:秒)
- Reply_Interval: 回复时间间隔,同一用户两次回复之间的最小等待时间(单位:秒)
- Interval_Config: 时间间隔配置记录,关联 Certification_Type,包含 Post_Interval 和 Reply_Interval 两个字段
- Remaining_Time: 剩余等待时间,用户距离下次可操作的倒计时秒数
- Post_Page: 发帖页面(post-page),用户创建新帖子的页面
- Post_Detail_Page: 帖子详情页(post-details-page),用户查看帖子内容和发表评论的页面
- Comment_Input: 帖子详情页底部的评论输入区域
需求
需求 1:后台管理端配置时间间隔
用户故事: 作为后台管理员,我希望按认证等级分别设置发帖和回复的时间间隔,以便对不同等级的用户实施差异化的频率控制。
验收标准
- THE Admin_Panel SHALL 提供时间间隔配置页面,以列表形式展示所有 Certification_Type 对应的 Interval_Config
- THE Admin_Panel SHALL 为每条 Interval_Config 显示认证等级名称、Post_Interval(秒)和 Reply_Interval(秒)三个字段
- WHEN 管理员修改某条 Interval_Config 的 Post_Interval 或 Reply_Interval 并保存, THE System SHALL 将配置持久化到数据库
- THE System SHALL 将 Post_Interval 和 Reply_Interval 的最小值限制为 0(0 表示无间隔限制)
- WHEN 新增 Certification_Type 且未配置 Interval_Config 时, THE System SHALL 使用默认值 0 秒作为 Post_Interval 和 Reply_Interval
需求 2:后端发帖间隔校验
用户故事: 作为 System,我需要在发帖接口中校验用户的发帖时间间隔,以防止用户在间隔时间内重复发帖。
验收标准
- WHEN PublishPosts 接口收到发帖请求, THE System SHALL 查询该 User 的 Certification_Type 对应的 Post_Interval 配置
- WHEN PublishPosts 接口收到发帖请求, THE System SHALL 查询该 User 最近一次成功发帖的时间
- IF 当前时间与 User 最近一次发帖时间的差值小于 Post_Interval, THEN THE System SHALL 拒绝请求并返回包含 Remaining_Time 的错误信息
- WHILE Post_Interval 配置为 0, THE System SHALL 不对该 Certification_Type 的 User 执行发帖间隔校验
- IF User 未关联任何 Certification_Type, THEN THE System SHALL 使用默认间隔值 0 秒(即不限制)
需求 3:后端回复间隔校验
用户故事: 作为 System,我需要在回复接口中校验用户的回复时间间隔,以防止用户在间隔时间内重复回复。
验收标准
- WHEN PublishPostComments 接口收到回复请求, THE System SHALL 查询该 User 的 Certification_Type 对应的 Reply_Interval 配置
- WHEN PublishPostComments 接口收到回复请求, THE System SHALL 查询该 User 最近一次成功回复的时间
- IF 当前时间与 User 最近一次回复时间的差值小于 Reply_Interval, THEN THE System SHALL 拒绝请求并返回包含 Remaining_Time 的错误信息
- WHILE Reply_Interval 配置为 0, THE System SHALL 不对该 Certification_Type 的 User 执行回复间隔校验
- IF User 未关联任何 Certification_Type, THEN THE System SHALL 使用默认间隔值 0 秒(即不限制)
需求 4:前端发帖间隔提示与拦截
用户故事: 作为 User,我希望在发帖间隔未满足时看到明确的倒计时提示,以便了解何时可以再次发帖。
验收标准
- WHEN User 成功发帖后, THE Post_Page SHALL 根据后端返回的间隔配置启动本地倒计时
- WHILE 发帖倒计时未结束, THE Post_Page SHALL 将发布按钮设置为禁用状态并显示剩余秒数
- WHEN 发帖倒计时结束, THE Post_Page SHALL 恢复发布按钮为可用状态
- IF User 在倒计时期间尝试发帖且后端返回间隔错误, THEN THE System SHALL 弹出系统提示显示剩余等待秒数并更新本地倒计时
需求 5:前端回复间隔提示与拦截
用户故事: 作为 User,我希望在回复间隔未满足时看到明确的倒计时提示,以便了解何时可以再次回复。
验收标准
- WHEN User 成功回复后, THE Post_Detail_Page SHALL 根据后端返回的间隔配置启动本地倒计时
- WHILE 回复倒计时未结束, THE Comment_Input SHALL 显示剩余秒数提示文字并处于不可提交状态
- WHEN 回复倒计时结束, THE Comment_Input SHALL 恢复为正常可输入可提交状态
- IF User 在倒计时期间尝试回复且后端返回间隔错误, THEN THE System SHALL 弹出系统提示显示剩余等待秒数并更新本地倒计时
需求 6:间隔配置的后端存储与查询接口
用户故事: 作为 System,我需要提供间隔配置的存储和查询能力,以支持后台管理端的配置操作和前后端的间隔校验。
验收标准
- THE System SHALL 在数据库中创建时间间隔配置表,关联 Certification_Type 的 Id,包含 Post_Interval 和 Reply_Interval 字段(整数类型,单位秒,默认值 0)
- THE System SHALL 提供查询所有 Certification_Type 对应 Interval_Config 列表的管理端 API 接口
- THE System SHALL 提供新增或修改 Interval_Config 的管理端 API 接口
- WHEN 小程序端调用 GetAppConfig 接口时, THE System SHALL 在响应中返回当前 User 的 Certification_Type 对应的 Post_Interval 和 Reply_Interval 值
- IF 查询的 Certification_Type 未配置 Interval_Config, THEN THE System SHALL 返回默认值 0 秒