Welcome 微信登录

首页 / 网页编程 / 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程序设计有所帮助。