本文实例讲述了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程序设计有所帮助。