抽奖活动用户抽奖流程
2019-10-22 10:43:40 2 举报
幸运抽奖流程图
作者其他创作
大纲/内容
Y
N
是否有效
分配各个奖品的区间
状态、时间、适用人群、积分、抽奖次数
普通情况2奖品1,10%,0~999;奖品2,90%,1000~9999;奖品3,0%,-1~-1;奖品4,10%,-1~-1;(奖品4有规定数量且数量为0)
假定1:指定了多个用户中某个奖,但是奖品的 数量少于用户数,他们同时并发抽奖。假定2:多个用户并发抽奖且都抽中了数量只有1 的奖品。可能发生:并发请求读取到的奖品数量相同,某个请 求把奖品数量减到了0,后续的并发请求 继续减,会将奖品数量减为负数。解决思路:在扣除sql中加入条件:num>0约束 num要 大于0才能更新成功获得知识:对某条数据的值减某值时可以这样:`num` = `num` - 某值 where `num`>=某值防止将num减为负数。
消耗积分
确定奖品id
抽中优惠券
用户是否指定中奖
是否更新数量成功
开始抽奖
增加用户积分
开始随机抽取奖品
抽中谢谢参与或礼品
失败的话回滚
扣除用户积分
在这之后的失败N都需进行回滚数据
从0~9999随机一个数字,确定奖品id
新增中奖记录
在循环分配区间的时候验证用户是否指定中该奖且未中过,即是否指定中奖奖品1或2。
有效性判断
该奖品选择的平台红包优惠券无效,生成失败
生成优惠券
结束抽奖
抽奖中有4种奖品,分别是积分、优惠券、谢谢参与、礼品
特殊情况1奖品1,0%,-1~-1;奖品2,90%,-1~-1;奖品3,0%,-1~-1;奖品4,10%,-1~-1;(奖品不是概率为0就是数量为0)
抽中积分
扣除奖品数量
收藏
0 条评论
下一页