PHP转盘抽奖接口实例

所属分类: 网络编程 / PHP编程 阅读数: 1464
收藏 0 赞 0 分享

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

更多精彩内容其他人还在看

Laravel框架实现多个视图共享相同数据的方法详解

这篇文章主要介绍了Laravel框架实现多个视图共享相同数据的方法,涉及Laravel框架视图与控制器数据调用相关操作技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

Laravel+Intervention实现上传图片功能示例

这篇文章主要介绍了Laravel+Intervention实现上传图片功能,结合实例形式分析了Intervention的安装及图片上传功能的相关设置、使用与注意事项,需要的朋友可以参考下
收藏 0 赞 0 分享

使用composer命令加载vendor中的第三方类库 的方法

这篇文章主要介绍了使用composer命令加载vendor中的第三方类库的方法,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

PHP+Redis开发的书签案例实战详解

这篇文章主要介绍了PHP+Redis开发的书签案例,结合实例形式详细分析了php结合redis开发书签功能的具体步骤及相关操作技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

PHP结合Redis+MySQL实现冷热数据交换应用案例详解

这篇文章主要介绍了PHP结合Redis+MySQL实现冷热数据交换应用案例,结合具体实例形式详细分析了Redis+MySQL冷热数据交换原理、实现方法及相关操作技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

PHP批斗大会之缺失的异常详解

这篇文章主要给大家介绍了关于PHP批斗大会之缺失的异常的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用PHP具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
收藏 0 赞 0 分享

实例分析10个PHP常见安全问题

在本篇文章里小编给各位分享了关于10个PHP常见安全问题以及相关实例代码,需要的朋友们学习参考下。
收藏 0 赞 0 分享

PHP+redis实现微博的推模型案例分析

这篇文章主要介绍了PHP+redis实现微博的推模型案例,结合实例形式分析了php+redis实现微博推送与关注功能相关操作技巧,需要的朋友可以参考下
收藏 0 赞 0 分享

php解压缩zip和rar压缩包文件的方法

项目涉及文档处理,用户上传的包括 zip 和 rar 压缩包,需要先将压缩包解压后再作处理。这篇文章主要介绍了php解压缩zip和rar压缩包文件,需要的朋友可以参考下
收藏 0 赞 0 分享

PHP+redis实现微博的拉模型案例详解

这篇文章主要介绍了PHP+redis实现微博的拉模型案例,结合具体实例形式详细分析了php+redis获取关注人最新信息的相关原理与操作技巧,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多