Skip to content

成绩互动公开字段深度参考 ​

本页把成绩互动对象分成曲目摘要、评论树、反馈和审核历史四组,说明字段之间的关系和客户端显示规则。

曲目摘要 ​

常见字段:

字段说明
musicId曲目编号
likeCount点赞数量
dislikeCount点踩数量
commentCount评论数量
updatedAt摘要更新时间

计数来自服务端,互动成功后应使用返回对象更新,不要在本地简单加一。更新时间按带时区文本处理。

评论对象 ​

评论可能包含:

  • id:评论标识;
  • musicId:所属曲目;
  • parentId:父评论,根评论为空或特殊值;
  • kind:评论/反馈等类型;
  • floor:楼层/显示序号;
  • user:作者显示名;
  • content:正文;
  • likeCount/dislikeCount;
  • createdAt。

评论树 ​

客户端可把 parentId 指向的评论作为父节点,构建回复树。父评论缺失时不要把回复随便挂到第一条评论;可以显示为孤立项并反馈数据结构异常。

删除父评论后,回复可能仍然存在或被隐藏,以服务返回为准。删除后的本地树要重新读取,不能只从数组中删除一个节点。

正文处理 ​

正文要转义 HTML、限制长度、避免自动执行链接和脚本。公开显示前检查联系方式、二维码、Token 和个人信息。原始正文不要写入普通错误日志。

互动请求 ​

曲目点赞/点踩 ​

请求需要 Token、曲目编号和页面允许的动作。动作提交中按钮禁用;响应超时先读取摘要和当前用户状态。

评论创建 ​

请求需要 Token、曲目编号、正文,回复时可带父评论。空正文在本地拦截;成功后使用服务返回摘要/评论对象。

评论删除 ​

需要评论标识和曲目编号。删除前展示脱敏正文摘要并二次确认;权限失败时不要换另一个评论 ID尝试。

评论互动 ​

对评论的点赞/点踩要区分曲目摘要和评论摘要。成功后刷新评论树;不要把评论计数直接当作曲目计数。

反馈对象 ​

反馈申请可能包含:

  • musicId;
  • reason;
  • createdAt;
  • status;
  • decisionAction;
  • decisionBy;
  • decisionNote;
  • updatedAt。

反馈理由应该是可复现、非敏感描述。提交状态和处理状态必须分别展示。

删除列表 ​

部分互动响应可能返回 deleteList,它表示页面应隐藏或移除的内容编号集合。客户端应把它当作服务结果处理,不要把它解释成用户请求的删除范围,也不要自行把其它曲目加入。

审核历史 ​

历史操作项可能包含:

  • time;
  • event;
  • musicId;
  • actor;
  • reason;
  • action;
  • status;
  • deleteList。

未知事件类型只读显示原值。历史事件的操作者和时间属于审核信息,普通用户不应看到内部字段。

审核决定 ​

决定请求动作由页面提供,常见是显示/隐藏。备注可以为空或是简短的非敏感说明。提交后回读审核对象和历史,不能把 UI 的“提交成功”当成内容已立即变化。

兼容性 ​

  • reviews 可能缺失,表示当前请求没有返回审核信息;
  • comments 可能为空数组,表示没有评论;
  • social 可能没有某个曲目,不能直接视为曲目不存在;
  • parentId 的空值形态以页面当前响应为准;
  • 时间格式可能变化,优先保留原文。

隐私和导出 ​

互动导出至少脱敏作者、操作者、评论正文中的联系方式和完整时间。测试夹具只用占位 ID 和文本。不要把真实评论、审核备注或聊天原文写入公开文档。

Released under the CC BY-NC-SA 4.0 License.