本文实例讲述了PHP转盘抽奖接口的实现方法。分享给大家供大家参考。具体如下:
这里的转盘抽奖随机返回一个转盘角度,概率可自己定义
$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,
'6' => array('min_angle'=>271,'max_angle'=>315,
'7' => array('min_angle'=>316,'max_angle'=>360,'prize'=>'谢谢参与')
);
// 选定区域
$area_selected = array();
// 随机抽取
$num_rand = mt_rand(1,10);
switch($num_rand){
// 小米
case 1: $area_selected = $arr_area[0]; break;
// 拍立得
case 2: $area_selected = $arr_area[1]; break;
// 10元话费
case 3: $area_selected = $arr_area[2]; break;
// 5元话费
case 4: $area_selected = $arr_area[3]; break;
// 谢谢参与
default:
switch(mt_rand(1,4)){
case 1: $area_selected = $arr_area[4]; break;
case 2: $area_selected = $arr_area[5]; break;
case 3: $area_selected = $arr_area[6]; break;
case 4: $area_selected = $arr_area[7]; break;
}
break;
}
echo $area_selected['prize'];
require('connect_database.PHP');
// 扣除答题积分
$MysqLi->query("update zaszh_user set answer_points=answer_points-5 where id='{$user_id}' and answer_points>=5");
if($MysqLi->affected_rows){
// 有积分
// 记录积分消耗
$MysqLi->query("insert into zaszh_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("update zaszh_prize_surplus set surplus=surplus-1 where prize='小米' and surplus>0");
if($MysqLi->affected_rows){
// 有剩余
$MysqLi->query("insert into zaszh_award(user_id,prize,'小米',unix_timestamp(now()))");
if($MysqLi->affected_rows){
echo json_encode(array('status'=>'success','msg'=>'小米'));
}else{
// 获奖失败
}
}else{
// 无剩余
}
break;
case '拍立得':
$MysqLi->query("update zaszh_prize_surplus set surplus=surplus-1 where prize='拍立得' and surplus>0");
if($MysqLi->affected_rows){
// 有剩余
$MysqLi->query("insert into zaszh_award(user_id,'拍立得','msg'=>'拍立得'));
}else{
// 获奖失败
}
}else{
// 无剩余
}
break;
case '10元话费':
$MysqLi->query("update zaszh_telephone_charge_surplus set charge_surplus=charge_surplus-10 where date=substring(now(),1,10) and charge_surplus>=10");
if($MysqLi->affected_rows){
// 有剩余
$MysqLi->query("insert into zaszh_award(user_id,'10元话费','msg'=>'10元话费'));
}else{
// 获奖失败
}
}else{
// 无剩余
}
break;
case '5元话费':
$MysqLi->query("update zaszh_telephone_charge_surplus set charge_surplus=charge_surplus-5 where date=substring(now(),10) and charge_surplus>=5");
if($MysqLi->affected_rows){
// 有剩余
$MysqLi->query("insert into zaszh_award(user_id,'5元话费','msg'=>'5元话费'));
}else{
// 获奖失败
}
}else{
// 无剩余
}
break;
default:
echo json_encode(array('status'=>'success','msg'=>'谢谢参与'));
}
}else{
// 无积分
echo json_encode(array('status'=>'error','msg'=>'您的积分不足。'));
}
$MysqLi->close();
希望本文所述对大家的PHP程序设计有所帮助。