需求是这样的,后台可以配置大转盘活动的要素,主要的是空奖个数,空奖概率,各奖项的总数量,每日数量,中奖概率。除此之外还有参加的城市、客群、每人中奖上限等等,这个做好校验就行。

里面有两个需要注意的地方:一是如何按照概率中奖,二是各个奖项不能超中或少中。

如何按照概率中奖
后台有校验,奖项概率加起来满足100%。这里把奖项包括空奖合并起来,不必考虑顺序,给一个0到100的刻度,按照每个奖项的中奖概率,分配一个范围,然后才0到100中取随机数,落在哪个刻度段上,就是哪个奖。

如果概率是0.1%或者0.01%,可以把刻度上限给到1000或10000。如果概率加起来满足100%,那就把各奖项的概率除以概率的总和,根据这个概率进行抽奖。

各个奖项不能超中或少中
尤其在活动刚开始,用户都在抽奖,高并发的场景下,如何保证奖项不能超中或者少中。

  • (防止频繁查库)前端加限制,防重复点击,N秒才能触发一次。
  • (防止频繁查库)加redis分布式锁,key为用户id+活动id,N秒才能触发一次,没抢到锁,给用户返回操作太频繁。
  • (防止频繁查库,超中)redis预热,每天首次查活动详情时,要给用户返回奖品信息,以活动id+奖品id+当天日期为key,每日数量为value,存到redis中,抽中奖项后,使用redis的原子操作decr减去数量,当返回的值小于0时,代表每日库存不足,返回空奖。
  • (防止超中)扣减总库存时,增加乐观锁,update条件增加中奖数量小于等于总数量,返回条数小于1时,代表更新失败,返回空奖。
  • (防止少中)用户中奖后,会优先在redis中减一,后面的更新总库存操作,插入抽奖记录操作等等,如有报错,或者业务校验等问题不能中奖时,需要把redis中的每日中奖数量incr加回来。

大转盘抽奖活动的设计相关推荐

  1. 微信公众号大转盘抽奖活动链接怎么添加

    很多微信公众号都会有抽奖活动,想要给自己的公众号添加大转盘抽奖活动的链接,希望可以帮助大家在微信公众号中举办起抽奖活动,活跃起自己的粉丝,该怎么添加呢?下面我们就来看看详细的教程. 微信公众号大转盘抽 ...

  2. qq开放平台之站内应用-php抽奖大转盘,jQuery实现大转盘抽奖活动仿QQ音乐代码分享...

    jQuery实现大转盘抽奖活动仿QQ音乐抽奖特效源码是一款基于jQuery,点击大转盘开始抽奖可抽到绿钻的仿qq音乐抽奖转盘的代码. 运行效果图:--------------------------- ...

  3. 测试用例设计思路一则----大转盘活动测试用例设计

    大转盘活动测试用例设计 题目:2019年双11公司内部员可参与抽奖,每人每天可参与一次抽奖,好友助力,最多额外获得3次机会. 思路: **一.功能验证,**所有的功能点是否符合需求设计,比如 1)身份 ...

  4. vue加js实现大转盘抽奖活动

    1.写大转盘的页面,这里是我的整个页面的代码 }, created() { this.ais = localStorage.getItem('ais') }, computed: { classOpt ...

  5. js实现大转盘抽奖活动

    一.建立html页面 <!DOCTYPE html> <html lang="en"> <head><meta charset=" ...

  6. 大转盘抽奖活动免费创建

    1. 微信搜索小程序"多盈抽奖助手". 2.点击立即创建 3.选择标准版免费创建 4.填写活动相关参数,支持实名抽奖,口令抽奖,限制地域抽奖,自定义主题,门店核销等. 5.创建好之 ...

  7. python 写一个幸运大转盘抽奖脚本

    大转盘抽奖活动 def get_value(): import random list1 = {"id": 1, "name": "1000元&quo ...

  8. uni-app开发经验分享二十二: uni-app大转盘思路解析

    最近在研究uni-app,制作了一个很有意思的集合项目demo,这里给大家分享下大转盘的前端设计思路需求案例:大转盘抽奖 线上demo查看: 案例效果: 制作思路: 前端大转盘使用css3动画来做,在 ...

  9. 小程序的大转盘活动怎么做?

    日常生活中最常见的抽奖活动莫过于大转盘抽奖了吧,无论线上线下.大转盘抽奖活动具有多样性.并可开展基于粘性维护的活动:跨界营销.会员积分.互动抽奖.红包.优惠等线上线下活动,并能通过连续扫码.会员积分. ...

  10. 产品经理的金字塔之旅---抽奖大转盘产品逻辑

    抽奖大转盘产品逻辑 作为一个好的活动推广,抽奖大转盘这一活动往往是必不可少的.但是之前作为一个用户角度单纯的只是希望自己可以中奖,根本不会从产品的角度去思考这一产品逻辑,现作为一名产品经理才明白并不是 ...

最新文章

  1. 一夜间,中英同时发布新冠疫苗临床试验结果:均可引起免疫反应,同时登上《柳叶刀》...
  2. 【网址收藏】Centos7.3离线(rpm方式)安装mysql服务
  3. Cpp 对象模型探索 / placement new 实现原理
  4. CyanogenMod源码编译模拟器
  5. 微信小程序开发学习记录01
  6. OPENNMS的后台并行管理任务
  7. 贷款利润最大化——利用随机森林和逻辑回归
  8. Hibernate3的jar包
  9. AI 开发者不容错过的 20 个机器学习和数据科学网站
  10. python读取手机通讯录_python爬取通讯录
  11. python使用cookie登陆新浪微博用户信息
  12. 高通WLAN框架学习(3)- -WLAN FTM 模式
  13. 计算机原理与体系结构王海瑞答案,袁梅
  14. 其实我(微笑哥)是个正经男人!
  15. 新浪云、腾讯云、阿里云、百度云、谷歌云、亚马逊云的区别是什么,哪个更适合国内创业者使用?
  16. android camera使用ISO值录制视频
  17. 从两万亿医疗市场中寻找IT商机
  18. java在线答题系统,上岸蚂蚁金服!
  19. 基于ITIL的医院信息化服务管理实践(客户说)
  20. C#问题——CS1591 缺少对公共可见类型或成员的 XML 注释

热门文章

  1. 苹果各版本手机更换电池的视频
  2. 如何解决audiodg占用内存高(停止与重启audiodg服务)
  3. php 开源 采集,poscms火车采集教程
  4. cspm2——T2 HRZ学英语
  5. 【心情】2016ICPC青岛站打铁记
  6. mac如何安装vue(简单明了)
  7. opencv3_java 图像的修剪裁剪Trimming Rect
  8. 谜底是计算机病毒的谜语,有关于安全的谜语及谜底答案解析|谜底是粽子的谜语...
  9. 读书笔记《推荐系统实战》| 好的推荐系统
  10. 太阁5 800人物 喜好