PHP转盘抽奖接口实例

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

相关文章

浅谈php://filter的妙用

浅谈php://filter的妙用

php://filter是PHP中独有的协议,利用这个协议可以创造很多“妙用”,本文说几个有意思的点,剩下的大家自己下去体会。本来本文的思路我上半年就准备拿来做XDCTF2016的题目的...

php数组一对一替换实现代码

复制代码 代码如下: <?php header("Content-type: text/html; charset=utf-8"); function multiple_repla...

PHP在线打包下载功能示例

PHP在线打包下载功能示例

本文实例讲述了PHP在线打包下载功能实现方法。分享给大家供大家参考,具体如下: 昨天晚上,为了弄这个打包下载的事,弄的事焦头烂额。有几个问题,第一个是开始PHP_ZIP.dll的问题。话...

PHP Global变量定义当前页面的全局变量实现探讨

PHP Global变量在实际应用中会发现许多问题需要我们不断的去完善处理。我们在这篇文章中就针对PHP Global变量出现的问题给出了一些具体的解决办法。 1:PHP Global变...

PHP获取路径和目录的方法总结【必看篇】

PHP获取路径和目录的方法总结【必看篇】

PHP获取目录和的方法通过魔术变量;通过超级全局变量;通过相关函数等等: <?php /** * PHP获取路径或目录实现 */ //魔术变量,获取当前文件...