不废话 直接上代码 大家可以 借鉴一下 只是接口 没有 页面抽奖页面效果
抽奖概率
public static function get_rand($proArr) {
$result = '';
//概率数组的总概率精度
$proSum = array_sum($proArr);
//概率数组循环
foreach ($proArr as $key => $proCur) {
$randNum = mt_rand(1, $proSum);
if ($randNum <= $proCur) {
$result = $key;
break;
} else {
$proSum -= $proCur;
}
}
unset ($proArr);
return $result;
}
抽奖逻辑
$today_time = strtotime(date('Y-m-d', time()));//当前时间0点
$count_key = 'guoqing1_rand_count_'.$user_id;
$todat_count_key = 'guoqing1_rand_count_'.$today_time;
$rand_count = $redis->scount($count_key);//用户当天的抽奖次数
$todat_count = $redis->scount($todat_count_key);//当天所有的抽奖次数
if($rand_count >= $number || $todat_count >= 300) error(23007);//抽奖次数已用完
$redis->sset($count_key,$operate_time);//记录用户抽奖次数
$redis->sset($todat_count_key,$operate_time);//记录当天总抽奖次数
//累计抽中1次后不能中奖
// $chouzhong_count = $redis->lsize('guoqing1_user_result_'.$user_id);
// $chouzhong_count = $chouzhong_count ? $chouzhong_count : 0;
//判断用户是否抽中过奖品 抽中的话 就不能再抽 返回谢谢会惠顾
// if($chouzhong_count < 1){
//判断实物奖品是否还有库存 没有的话 中奖记录设为0
$prize1 = $redis->get('guoqing1_rand_prize1'.$today_time);//查询糖果音乐耳机已抽中数量 总
php 抽奖接口demo
最新推荐文章于 2024-06-28 07:56:04 发布
本文将介绍如何使用PHP编写一个简单的抽奖接口,包括接口设计、随机数生成、奖项判断等关键步骤,帮助开发者理解抽奖逻辑的实现。
摘要由CSDN通过智能技术生成