现在在做一个有关抽奖的活动,将我自己所做的抽奖思路书写一下
1、项目奖项的配置存储在MongoDB 配置的参数为 奖项的等级(prizeLevel)、数量(prizeNum)、奖项的名称(prizeName)以及金额(prizeMoney)以及活动的相关信息
2、抽奖活动:
a、判断活动是否开始,结束,还是在开奖中
b、判断抽取的奖项是否已经被抽取
c、获取有参加资格的人员信息
d、中奖概率的设置
e、打乱人员信息的排序 Collections.shuffle(userList); //l乱序
f、进行抽奖操作(while循环):
1、抽中奖项
2、判断当前奖项的数量是不是为0,不为0的话 将当前奖项的数量减到0位置 为0的话 循环结束
3、获取一个抽奖人员信息 ,并将相关的信息保存在数据库里面,并在人员信息List 减去一个人员
4、没有中奖的话,继续循环
在抽奖的过程中 使用的时while(true)进行抽奖的循环,当奖品的数量为0的时候、抽取的数量与奖品设置的数量一样的时候、抽取的时候人员信息长度0的时候 将判断修改为while(false)结束循环 并返回数据
中奖概率与思路是参考:沧海一滴的博客文章:https://www.cnblogs.com/softidea/p/10002359.html ,感谢文章对于我的启发