全部
常见问题
产品动态
精选推荐

如何设计一个抽奖系统

管理 管理 编辑 删除

抽奖在我儿时的印象里,是一个非常神秘、非常刺激、也非常有意思的事儿。小时候妈妈带我去商场里,当购物金额达到一定门槛时,可以获得抽奖机会。

抽奖的形式也非常简单,在一个不透明的箱子里放着很多小纸条或者小球,抽奖盒子上有一个仅一拳大小的入口,手伸进去随机摸一张纸条或小圆球,上面写着所抽到的奖品,妈妈总会让我去抽。虽然我抽到基本上都是最普通的奖品,但是整个抽奖过程中充满期待又未知的体验还是令人着迷。

后来逐步演化出了更多的抽奖方式,比如很常见的转盘抽奖。转盘抽奖的规则也很简单,转盘上被划分了 n 个全等的扇形,每个扇形上都分别标注了奖品。转动转盘后,当指针落在某一个扇形区间时,你就获得了扇形上对应的奖品。

这个是某平台的抽奖活动:

随着互联网的普及,抽奖也逐步推广为线上化,那么从产品角度看,如何设计一个抽奖系统呢?

一、系统设计思路

首先要确定设计思路,设计思路围绕【谁】【在什么场景】【做什么】进行分析。

套用这个逻辑分析:用户在活动下进行抽奖。

所以角色有两方:【用户】【活动发起方】(这里用运营指代)。

  • 场景:抽奖活动,即运营在后台配置活动。
  • 行为:抽奖,即用户基于活动在c端进行抽奖。

二、抽奖系统模块

一套抽奖系统主要是分为两个大模块:

  1. c 端面向用户的活动页;
  2. b 端创建活动的后台。

c 端活动页一般都是 h5 的配置页面,主要的逻辑通过某个标识和后台配置的活动关联。h5 页面上承接了规则介绍、交互形式的说明,通过调用抽奖系统的 api,将返回结果渲染在页面上,这里不多赘述。

b 端后台主要是定义活动时间、奖品、以及奖品概率、设置抽奖活动状态等。

奖池:奖品归属于某个奖池、一个活动也可以有不同的奖池。本身奖品是有库存的概念,多奖池从底层设计上可以理解为主要是为了区分库存池。

奖品类型:常见的奖品类型主要是包含实物、虚拟商品如权益、优惠券以及现金这几种类型。不同类型的奖品本质最大的区别是履约方式的不同。

1)实物:实物需要物流履约,所以在设计上需要考虑发货流程、单号信息的回传与通知。

2)虚拟商品(如优惠券、虚拟权益):虚拟物权一般都是由系统触发,设计上需要考虑和履约系统的交互,触发履约的时间点,以及下发履约后的信息的通知。

3)现金:不同面额的现金可以看作一个单独的奖品。这些奖品都在一个现金池中,现金池可以理解为奖池。由于直接发放现金的操作比较敏感,常规流程中,需要关联预算,而且现金奖池也区分于其他奖池。在奖池、奖品设置时,需要联动内部付款系统指定现金发放方式。

奖品概率:想象一下我们使用大转盘来抽奖时,每个奖品会占用一定角度的扇区,设角度为「α」,起初所有奖品占的扇区角度之和为 360 度,该奖品的中奖概率是「α / 360」。在系统设计上,为了便于理解,我们通常用百分比来进行设置概率,所有奖品的概率加起来要满足 100% 。在技术实现上,用到了随机数算法,结合所配置奖品的中奖概率,完成抽奖的逻辑。

抽奖活动:抽奖活动顾名思义,其实就是围绕抽奖的一个配置,主要的信息是活动名称、奖品名称、奖品库存、奖品图片、中奖文案以及一些自动回复的设置,每个活动都有唯一一个标识。

三、个人思考

在常见的设计中,抽奖机会也是可以通过积分兑换这种形式获取。用户如果想要抽奖,一般会有一个门槛,比如需要连续签到、或者通过其他各种活动的获得积分来兑换抽奖机会等等,规则简单的可能当天登陆即可获得抽奖机会。

抽奖时,每个扇形都有不同的奖品、每个用户有剩余可抽奖次数。虽然扇形都是全等的,但是每个奖品的概率可以是自定义的。比如90%用户都会抽到谢谢参与,只有10%用户才会抽到奖品。

从这个场景看,抽奖和兑换的实现逻辑其实非常相似,本质上都是一种兑换逻辑,但是抽奖和兑换的关键区分在于抽奖有很多随机定性,而兑换是百分百命中获得的。

欢迎大家来体验、来提建议,来一起让CRMEB开源商城系统更强大,让更多开发者受益!虽然是开源,但我们该有的功能全都有!拼团、秒杀、优惠券、抽奖、积分、直播、分销、页面DIY... 常用商城系统功能,都是全开源,直接用!

作者:闫秀儿

题图来自 Unsplash,基于 CC0 协议

请登录后查看

CRMEB-慕白寒窗雪 最后编辑于2023-08-21 11:04:47

快捷回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
回复从新到旧

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest==1? '取消推荐': '推荐'}}
{{item.floor}}#
{{item.user_info.title}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
{{item.like_count}}
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

作者 管理员 企业

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}   {{itemc.ip_address}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
查看更多
回复
回复
997
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

CRMEB-慕白寒窗雪 作者
社区运营专员---高冷のBoy | 呆萌のGirl

回答

2304

发布

1777

经验

45564

快速安全登录

使用微信扫码登录
{{item.label}} {{item.label}} {{item.label}} 板块推荐 常见问题 产品动态 精选推荐 首页头条 首页动态 首页推荐
加精
取 消 确 定
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定

微信登录/注册

切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服

CRMEB咨询热线 咨询热线

400-8888-794

微信扫码咨询

CRMEB开源商城下载 开源下载 CRMEB官方论坛 帮助文档
返回顶部 返回顶部
CRMEB客服