产品经理的业务需求是这样的:
抽奖界面:
需求:
1.其中每种奖品都有自己的中奖概率,可以相同,可以不同;
2.不会有不中奖的情况,最低奖品可以是积分;
3.每种奖品(除了最低奖品)的数量都是一定的,提前设定好;
设计:
数据库表设计(这些字段可能存在于多张表中):
id percent total_num(总数量) remain_num(剩余数量) 。。。。
假设数据为:
1 | 0.001 | 10 | 10 |
2 | 0.005 | 50 | 50 |
3 | 0.100 | 100 | 100 |
4 | 1 | null | null |
业务逻辑简单设计:
在数据库中取出所有还有余量的奖品信息,sql的过滤条件是:where remain_num != 0 or total_num is null order by percent asc;
使用js Math.random()随机数方法,获得一个0-1之间的随机数字:num;
定义一个变量