文/郑江南
编辑/杜逸敏
一、故事背景
明道云可以通过零代码的方式,搭建出各种各样的场景。我之前就想用明道云做一个创新型的小应用,可是一直没有好的想法。有一次,当我们团队内部提出要有奖励机制的时候,我就想到了一个好玩儿又有创意的小场景——盲盒抽奖。
二、搭建目标
- 搭建出一个抽奖闭环流程的应用。
- 在不同奖励条件下,奖励概率也会随之调整。
三、搭建步骤
1.整理框架及业务对象
首先,我们需要明确在抽奖流程中可能会涉及到的业务对象,主要是基础数据和抽奖记录两个方面。当然,这里面会有一些配置辅助表来实现奖励概率的可配置化,以下是整理后的一个架构示意图。
2.整理奖励规则
在动手搭建之前,我们可以预设好奖励制度,随机抽奖的方式,比如:等概率随机、权重随机以及根据次数调整的伪随机。规则多样,方法不同,我这里想实现的主要还是以不同权重下,划分不同权重的方式,来进行随机抽奖。
3.动手搭建
根据结构示意图,利用字段拖拉拽的方式,我们快速配置好工作表单,包括各种字段属性,以及表单之间的关联。
设置奖项。每种奖项在不同的规则条件下,中奖概率是不同的。所以我们需要构建出规则表,方便后面在抽奖时,利用规则条件判断后计算出相应的概率。
录入相关的数据,我们的整体框架就出来了。
接下来就是我们最关键的一步,通过工作流的配置,结合概率去随机抽取概率明细。点击抽奖记录上的抽奖按钮去触发工作流。
根据抽奖记录上的奖励规则,获取这个规则下所有的概率明细数据,并用公式节点去计算所获取到的条数。这个条数会在后面算概率的时候用到。
然后,通过代码块节点去计算抽奖概率。对于技术人员来讲,这个代码比较简单,对于业务人员来讲或许有点难度。所以小编我也在这里为大家贴出了这一段代码,供大家参考(如果有更好的代码,也欢迎分享)。
原理就是把获取到的所有明细数据的概率,以元组的方式排列起来,从中随机抽取一个,并输出它的序列号。需要注意的是,这里输出的是序列号,而不是概率本身,所以,我们可以在工作表里增加一个序号字段来与之匹配。
之后的配置就很简单了,用查询单条的工作流节点,去查找对应的概率明细记录,并更新到抽奖记录上去。这样我们就通过点击一个按钮来实现概率比例的抽奖啦!让我们看下效果。
4.优化完善
每一次的中奖金额都应该累计在成员的纪录表上,实际奖励也需要确认动作去累计奖金的实际发放,这样也方便后续的统计和记录。当然,如果不是奖金的奖励,那就不需要去累计金额了。
概率的维护也可以优化,我们可以分配好权重,通过工作流去自动计算出每一项的概率。这样管理员维护数据也更加方便,交互更加友好。
四、结语
这就是通过明道云来搭建的一个简单的抽奖小应用的实现方法,场景虽小,但很实用。我们团队的奖励机制依托这个小应用有效地实行起来了,并且可追溯、使用方便,盲盒的概念也能激起大家别样的兴趣。希望这样的一个小场景,能启发大家的思路,做出更多有创意、有想法的应用来!