拉黑后端实现

此处输入图片的描述

[TOC]

社区妹子强烈需要拉黑功能,结果刚上线,妹子就被拉黑了…这是个悲伤的故事…

初衷

对于种种原因不想再理会的人,可以删除私信时选择拉黑。拉黑后,拉黑者取消关注对方,删除私信,不在接收对方私信。被拉黑者收到系统消息提示被拉黑,如果是恶意、不良信息则超过一定次数被禁号,但是保留被拉黑之前所有状态,包括关注、私信,但是再次发送私信时提示私信被对方拒绝接收,再次关注提示对方拒绝被你加关注。唯一解除拉黑的手段,拉黑方再次关注对方则自动取消拉黑。

之所以保留状态,是为了尽量减少用户被拉黑的感知,但是又会收到系统提醒,相互矛盾。

策略

  • 删除私信时勾选拉黑:把对方加入自己blacklist列表中,统计数据,取消关注,删除私信会话。
  • 进入主页:返回拉黑数据,点击关注时则根据是否被拉黑进行提示。(更优方式:点击关注时后台判断是否被拉黑,拉黑则拒绝该请求,否则正常关注)
  • 被拉黑者发送私信:进入私信页面返回拉黑数据,已被拉黑则发送消息时直接提示私信被对方拒绝接收,如果中途被拉黑后台会主动判断blacklist而提示私信被对方拒绝接收。(更优方式:开始不传递拉黑数据,发送私信时后台判断提示)

上面也提到了更优办法,其实可以减少查询次数,但是最终没用,还是考虑到体验的问题,blacklist是使用kv存储的,后台查询比客户端请求快,kv费用消耗低。所以每次查询数据附带后传到前端,绝大多数情况用户点击就有提示,而不存在网络延时。