PHP转盘抽奖接口实例
本文实例讲述了PHP转盘抽奖接口的实现方法。分享给大家供大家参考。具体如下:
这里的转盘抽奖随机返回一个转盘角度,概率可自己定义
lottery_get.php接口文件如下:
<?php /*session_start(); if(!isset($_SESSION['zaszh_user_id'])){ echojson_encode(array('status'=>'error','msg'=>'连接超时,请重新打开页面。')); exit; } $user_id=$_SESSION['zaszh_user_id'];*/ $user_id=1;//测试用 //转盘区域 $arr_area=array( '0'=>array('min_angle'=>1,'max_angle'=>45,'prize'=>'小米'), '1'=>array('min_angle'=>46,'max_angle'=>90,'prize'=>'拍立得'), '2'=>array('min_angle'=>91,'max_angle'=>135,'prize'=>'10元话费'), '3'=>array('min_angle'=>136,'max_angle'=>180,'prize'=>'5元话费'), '4'=>array('min_angle'=>181,'max_angle'=>225,'prize'=>'谢谢参与'), '5'=>array('min_angle'=>226,'max_angle'=>270,'prize'=>'谢谢参与'), '6'=>array('min_angle'=>271,'max_angle'=>315,'prize'=>'谢谢参与'), '7'=>array('min_angle'=>316,'max_angle'=>360,'prize'=>'谢谢参与') ); //选定区域 $area_selected=array(); //随机抽取 $num_rand=mt_rand(1,10); switch($num_rand){ //小米 case1:$area_selected=$arr_area[0];break; //拍立得 case2:$area_selected=$arr_area[1];break; //10元话费 case3:$area_selected=$arr_area[2];break; //5元话费 case4:$area_selected=$arr_area[3];break; //谢谢参与 default: switch(mt_rand(1,4)){ case1:$area_selected=$arr_area[4];break; case2:$area_selected=$arr_area[5];break; case3:$area_selected=$arr_area[6];break; case4:$area_selected=$arr_area[7];break; } break; } echo$area_selected['prize']; require('connect_database.php'); //扣除答题积分 $mysqli->query("updatezaszh_usersetanswer_points=answer_points-5whereid='{$user_id}'andanswer_points>=5"); if($mysqli->affected_rows){ //有积分 //记录积分消耗 $mysqli->query("insertintozaszh_answer_points_consume(user_id,points_consume,consume_for,create_date)values('{$user_id}',5,'lottery',unix_timestamp(now()))"); switch($area_selected['prize']){ case'小米': $mysqli->query("updatezaszh_prize_surplussetsurplus=surplus-1whereprize='小米'andsurplus>0"); if($mysqli->affected_rows){ //有剩余 $mysqli->query("insertintozaszh_award(user_id,prize,create_date)values('{$user_id}','小米',unix_timestamp(now()))"); if($mysqli->affected_rows){ echojson_encode(array('status'=>'success','msg'=>'小米')); }else{ //获奖失败 } }else{ //无剩余 } break; case'拍立得': $mysqli->query("updatezaszh_prize_surplussetsurplus=surplus-1whereprize='拍立得'andsurplus>0"); if($mysqli->affected_rows){ //有剩余 $mysqli->query("insertintozaszh_award(user_id,prize,create_date)values('{$user_id}','拍立得',unix_timestamp(now()))"); if($mysqli->affected_rows){ echojson_encode(array('status'=>'success','msg'=>'拍立得')); }else{ //获奖失败 } }else{ //无剩余 } break; case'10元话费': $mysqli->query("updatezaszh_telephone_charge_surplussetcharge_surplus=charge_surplus-10wheredate=substring(now(),1,10)andcharge_surplus>=10"); if($mysqli->affected_rows){ //有剩余 $mysqli->query("insertintozaszh_award(user_id,prize,create_date)values('{$user_id}','10元话费',unix_timestamp(now()))"); if($mysqli->affected_rows){ echojson_encode(array('status'=>'success','msg'=>'10元话费')); }else{ //获奖失败 } }else{ //无剩余 } break; case'5元话费': $mysqli->query("updatezaszh_telephone_charge_surplussetcharge_surplus=charge_surplus-5wheredate=substring(now(),1,10)andcharge_surplus>=5"); if($mysqli->affected_rows){ //有剩余 $mysqli->query("insertintozaszh_award(user_id,prize,create_date)values('{$user_id}','5元话费',unix_timestamp(now()))"); if($mysqli->affected_rows){ echojson_encode(array('status'=>'success','msg'=>'5元话费')); }else{ //获奖失败 } }else{ //无剩余 } break; default: echojson_encode(array('status'=>'success','msg'=>'谢谢参与')); } }else{ //无积分 echojson_encode(array('status'=>'error','msg'=>'您的积分不足。')); } $mysqli->close();
希望本文所述对大家的php程序设计有所帮助。