我刚才考虑了一下。bbcode的问题是非结构化数据。
在bbcode收费模式下,因为不限制收钱次数,每点一次按钮的瞬间,就从对方扣款固定款项,付款给收费者,没有中间人,相对简单清楚。
在红包(付款)模式下,产生了两个新问题, 至少需要两个限定参数:一个是总金额,一个是红包个数。
在产生红包bbcode的同时,需要立即从红包发放者账户上扣除总金额,放到红包系统中。然后每个抢红包的人,抢红包的瞬间,将该红包的对应份额转到抢红包者的账户。
这基本上就要求发放红包这个操作是刚性和不可逆的。在一个固定的操作界面上,不给用户提供对已发放红包的操作选项,自然不会有问题。
但如果采取bbcode的纯文本编辑模式,可能会引发一些不好控制的问题。
比如用户原准备发放50家园币,10个红包。TA生成了TA的bbcode,系统将TA的账户扣了50家园币。
在有3个用户领了红包以后,红包发放者改变了主意,编辑bbcode,改成发放100家园币,给20个人。
现在系统面临一个困境,该红包现在还剩下35家园币,可是新的bbcode指定了100家园币。系统是否应该在每次编辑帖子时都检查帖子里是否有红包bbcode, 把剩余未发放的家园币归还给该用户,再新扣100家园币?
如果帖子编辑很多次,我们是否要监测帖子的历史?查看红包bbcode是否发生了变化。如果红包bbcode不小心被删除,或者写错,系统应该怎么处理?
所以说bbcode尽管可能最初引入简单,但更新和支持量(包括对用户)会很大。