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程序设计有所帮助。