1
WenJimmy 2022-06-06 10:13:13 +08:00
发言技能冷却时间?
|
2
zzztongxue OP @WenJimmy 如何实现冷却😂
|
3
hingle 2022-06-06 10:24:56 +08:00 1
把 1 禁言字段改成禁言过期时间
|
4
liuxey 2022-06-06 10:28:41 +08:00
干脆 Redis 里存一下 userId 的禁言状态,时间到了 key 自动过期,都不用维护过期了
|
5
zzztongxue OP @liuxey 有永久封禁的用户,这种方式感觉不适合做持久化
|
6
codergrowing 2022-06-06 10:35:23 +08:00
一键禁言是什么场景?批量禁言所选用户吗?如果是这样的话,方案二也可以实现啊,插入多条记录而已。
如果是将所有用户都禁言,方案一、二都不行吧,方案一岂不是得将表里所有行都更新一下 |
7
cmdOptionKana 2022-06-06 10:38:07 +08:00
其实一般论坛发言频率很低,直接增加个字段每次查表就行。等到论坛很兴旺的时候再看怎么改一下与 Redis 配合也不迟。
|
8
delectate 2022-06-06 11:07:12 +08:00 3
为了应对国内特殊情况,我觉得 user 表应该增加五各字段,分别是:
1 、禁言等级:禁言分不同等级的,比如仅禁止发言可浏览;禁止发言禁止浏览;删除账号;保留账号(类似 b 站的纪念账号) 2 、解禁时间:最短 1 秒,最长 2099 年,相当于永久了; 3 、解禁后的禁言等级:理论上来说,不能接近之后直接可以恢复自由身,要有一个改造过程(参考辛巴限流) 4 、解禁后是否需要管理员二次确认的 Boolean:(需要管理员二次确认这个人是否可以放出来,比如李佳琦、薇娅) 5 、封禁原因(含封禁原因、管理员操作历史等) |
9
delectate 2022-06-06 11:08:20 +08:00
补充:
每次展示帖子的时候,如果查到仍在禁言期,则用户的发言“假删除”,不可以真的删掉,不然 guo 安 wang 安找你来调数据,你说删了,你就替他去 jail 了。 |
10
pengtdyd 2022-06-06 11:15:37 +08:00 2
我想到一个比较骚的产品套路,当帖子不符合规范的时候,别人看不到,只有发帖者自己可以看到,这样让发帖者以为发成功了,其实只有他自己能看,其他人看不了,这样用户体验非常好。
|
12
zzztongxue OP @pengtdyd 哈哈哈,这个功能已经做了,帖子设置个仅作者自己可见状态即可。
|
13
ChoateYao 2022-06-06 11:23:29 +08:00
@zzztongxue 但是不感觉这玩意对分页很恶心嘛。
|
14
zzztongxue OP @delectate 这个思路和方法二差不多,这些字段可以放在惩罚表里。
|
15
zzztongxue OP @ChoateYao 如果是惩罚表的话,分页不好处理嘛?没 get 到你的意思
|
16
zzztongxue OP @codergrowing 当前业务场景没有涉及到批量禁言的
|
17
estk 2022-06-06 13:19:11 +08:00 via Android 1
如果是我,就悄无声息让用户无感,可以发帖回帖,但是只有他自己能看到
|
18
murmur 2022-06-06 13:24:16 +08:00 1
@pengtdyd 这不就是新浪微博么,被封号了还可以登录,但是不能申诉,一跳转申诉就提示未登录,然后也不能注销,因为注销和申诉是一套系统
|
19
BeautifulSoap 2022-06-06 13:42:54 +08:00 via Android
user 表再加个禁言时间字段啊。用户登录或发言的时候如果过了字段就更新下禁言 flag 不就可以了
|
22
oppoic 2022-06-06 14:36:06 +08:00
论坛一般登录一次,很久不掉线,期间他每次发言,你都查 user 表吗?
用户信息直接放 redis 里最好(此接口调用非常频繁)具体思路: 用户登录,验证成功,写用户信息进 redis (包括禁言状态)。前端拿到这个全局都可以使用,比如发言判断、头像展示、粉丝互动等等等(当然后端也要验证) 过程中禁言、恢复等操作,写库之后再更新 redis (到期自动解除禁言,到期时间也返回给前端,前端来判断) |
23
ranleng 2022-06-06 14:36:32 +08:00
@pengtdyd 某即刻就是这么搞的, 审核中的 po ,自己能看到,其他人看不到。但之前有 bug ,自己转发自己 po (审核中)会显示原 po 找不到。
|
24
ikaros 2022-06-06 16:32:22 +08:00
第一种方法为啥不能自动取消禁言? 这个依赖你自己的实现吧
|
25
iClass 2022-06-06 16:34:12 +08:00 via Android
不会开门 何必关门
|
26
jackma0571 2022-06-06 17:42:33 +08:00
我是产品经理说下我的拙见:
1 、user 表增加禁言状态,和禁言期限,发帖回复时校验该状态,禁言状态提示发送失败,被禁言 2 、每天跑定时任务,把到期的用户状态改为非禁言状态,因此你的到期时间最好为每天的 24 点,不然你的定时任务得每分钟跑一次 |
27
kaiki 2022-06-06 18:13:27 +08:00
我设计的是用户有状态和解锁时间,正常 /禁用,判断状态再判断时间,如果是禁用那就没必要判断时间了。
|
28
i3x 2022-06-06 18:17:21 +08:00 via Android
所有的评论统统人工审核后放出呗。
|
29
potatowish 2022-06-06 18:27:48 +08:00 via iPhone
社区最好不要设置禁言,可以参照某乎,评论仅个人可见,再考虑下 V2 的降权规则,触发规则就让所发评论沉底。
这样的好处是,用户不会因为直接禁言就破口大骂,而是慢慢接受现状~ |
30
keepeye 2022-06-06 18:29:45 +08:00
你要回查禁言记录,就需要单独一张表了。其实都可以,看你系统规模,如果有几千万用户,你加一个字段都要累死,所以单独一张表应该适应性更强一些
|
31
xieqiqiang00 2022-06-07 00:26:18 +08:00
你把第一个时间改成解禁时间不就好了,如果是永久禁言改成 2000 年以前的时间比如 1970 年就是 0 时间,然后判断一下就好了
|