首页 / 网页编程 / PHP / PHP转盘抽奖接口实例
本文实例讲述了PHP转盘抽奖接口的实现方法。分享给大家供大家参考。具体如下:
这里的转盘抽奖随机返回一个转盘角度,概率可自己定义
lottery_get.php接口文件如下:
复制代码 代码如下:<?php
/*session_start();
if(!isset($_SESSION["zaszh_user_id"])){
echo json_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){
// 小米
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,create_date) values("{$user_id}","小米",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,prize,create_date) values("{$user_id}","拍立得",unix_timestamp(now()))");
if($mysqli->affected_rows){
echo json_encode(array("status"=>"success","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,prize,create_date) values("{$user_id}","10元话费",unix_timestamp(now()))");
if($mysqli->affected_rows){
echo json_encode(array("status"=>"success","msg"=>"10元话费"));
}else{
// 获奖失败
}
}else{
// 无剩余
}
break;
case "5元话费":
$mysqli->query("update zaszh_telephone_charge_surplus set charge_surplus=charge_surplus-5 where date=substring(now(),1,10) and charge_surplus>=5");
if($mysqli->affected_rows){
// 有剩余
$mysqli->query("insert into zaszh_award(user_id,prize,create_date) values("{$user_id}","5元话费",unix_timestamp(now()))");
if($mysqli->affected_rows){
echo json_encode(array("status"=>"success","msg"=>"5元话费"));
}else{
// 获奖失败
}
}else{
// 无剩余
}
break;
default:
echo json_encode(array("status"=>"success","msg"=>"谢谢参与"));
}
}else{
// 无积分
echo json_encode(array("status"=>"error","msg"=>"您的积分不足。"));
}
$mysqli->close();
希望本文所述对大家的php程序设计有所帮助。