如何用PHP写一个抽奖功能?
发布时间:2021-12-23 16:56:10 所属栏目:PHP教程 来源:互联网
导读:如何用PHP实现抽奖功能?一般商家在搞活动时,我们总能看到各种抽奖,这些抽奖功能是怎样做的呢?下面就分享一个使用PHP写的抽奖功能实例,感兴趣的朋友就继续往下看吧。 在项目开发中经常会遇到花钱抽奖类型的需求。但是老板总是担心用户用小钱抽到大奖。这
如何用PHP实现抽奖功能?一般商家在搞活动时,我们总能看到各种抽奖,这些抽奖功能是怎样做的呢?下面就分享一个使用PHP写的抽奖功能实例,感兴趣的朋友就继续往下看吧。 在项目开发中经常会遇到花钱抽奖类型的需求。但是老板总是担心用户用小钱抽到大奖。这样会导致项目亏损。下边这段代码可以有效制止抽奖项目亏钱。 个人奖池: 语言:thinkphp redis mysql 表:desire抽奖商品表 desire_log用户抽奖奖品表 user_desire_log用户抽奖记录表 desire_risk抽奖风控表 需求:用户奖池分为进行中奖池和已完成奖池。当用户抽到大奖后,用户个人奖池重置,否则将继续抽奖。最后一次抽奖必中大奖,通过风控金额来判断用户是否可以抽大奖。当所有用户已完成的抽奖,盈利大于风控金额的时候可以让用户抽大奖,否则用户抽不到大奖。 <?php //抽奖接口 public function desire() { $userData = $this->userSessionData();///用户的唯一标识 $time = time(); $this->limit_reward_time($userData['id'], $time);///限制抽奖间隔时间 防止被恶意刷奖品 //活动开启开关 $num = input('num/d'); if (!$num) { output('1008', '参数错误'); } if ($num!=1){ if ($num !=10){ if ($num !=100){ output('1008', '参数错误'); }else{ $send = $this->draw($num); } }else{ $send = $this->draw($num); } }else{ $send = $this->draw($num); } if ($send != '金币不足') { output('200', '列表', $send); } else { output('1012', $send); } } /////抽奖核心 public function draw($num) { $userData = $this->userSessionData(); $resultSend = Cache::get('奖池名称加上用户的唯一标识,确保一人一奖池' . $userData['id']);//获取个人奖池 if (!empty($resultSend)) { $userRedis = unserialize(Cache::get('newdesiredraw' . $userData['id']));///将奖池序列化 } else { $userRedis = '';///当前用户不存在奖池 } (编辑:常州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |