PHP转盘抽奖接口实例


Posted in PHP onFebruary 09, 2015

本文实例讲述了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 相关文章推荐
十天学会php之第十天
Oct 09 PHP
php 变量定义方法
Jun 14 PHP
在Windows系统上安装PHP运行环境文字教程
Jul 19 PHP
php文件夹与文件目录操作函数介绍
Sep 09 PHP
php float不四舍五入截取浮点型字符串方法总结
Oct 28 PHP
PHP获取php,mysql,apche的版本信息示例代码
Jan 16 PHP
PHP使用xmllint命令处理xml与html的方法
Dec 15 PHP
thinkphp3.x中变量的获取和过滤方法详解
May 20 PHP
Django中通过定时任务触发页面静态化的处理方式
Aug 29 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
Nov 10 PHP
如何在centos8自定义目录安装php7.3
Nov 28 PHP
PHP预定义接口――Iterator用法示例
Jun 05 PHP
PHP积分兑换接口实例
Feb 09 #PHP
PHP答题类应用接口实例
Feb 09 #PHP
自己写的php中文截取函数mb_strlen和mb_substr
Feb 09 #PHP
php构造函数的继承方法
Feb 09 #PHP
php继承中方法重载(覆盖)的应用场合
Feb 09 #PHP
php抽象类使用要点与注意事项分析
Feb 09 #PHP
PHP中的socket_read和socket_recv区别详解
Feb 09 #PHP
You might like
php代码运行时间查看类代码分享
2011/08/06 PHP
PHP的加密方式及原理
2012/06/14 PHP
Symfony2学习笔记之系统路由详解
2016/03/17 PHP
PHP性能优化大全(php.ini)
2016/05/20 PHP
Ajax提交表单时验证码自动验证 php后端验证码检测
2016/07/20 PHP
PHP 实现 JSON 数据的编码和解码操作详解
2020/04/22 PHP
List Installed Hot Fixes
2007/06/12 Javascript
jquery ajax执行后台方法
2010/03/18 Javascript
25个非常棒的jQuery滑块插件和教程小结
2011/09/02 Javascript
JS中的log对象获取以及debug的写法介绍
2014/03/03 Javascript
IE6/IE7中JavaScript json提示缺少标识符、字符串或数字问题处理
2014/12/16 Javascript
自定义百度分享的分享按钮
2015/03/18 Javascript
解析JavaScript模仿块级作用域
2016/12/29 Javascript
zTree树形菜单交互选项卡效果的实现方法
2017/12/25 Javascript
bing Map 在vue项目中的使用详解
2018/04/09 Javascript
详解Vue This$Store总结
2018/12/17 Javascript
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
2014/06/25 Python
python 异常处理总结
2016/10/18 Python
Python实现的圆形绘制(画圆)示例
2018/01/31 Python
使用numba对Python运算加速的方法
2018/10/15 Python
Python使用reportlab模块生成PDF格式的文档
2019/03/11 Python
python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
2019/07/18 Python
使用python os模块复制文件到指定文件夹的方法
2019/08/22 Python
Python for i in range ()用法详解
2020/09/18 Python
在pycharm创建scrapy项目的实现步骤
2020/12/01 Python
无谷物狗粮:Pooch & Mutt
2018/05/23 全球购物
英国行业制服供应商:Alexandra
2019/09/14 全球购物
函授毕业生的自我鉴定
2013/11/26 职场文书
销售主管竞聘书
2014/03/31 职场文书
商业融资计划书
2014/04/29 职场文书
2016教师给学生的毕业寄语
2015/12/04 职场文书
技术入股协议书
2016/03/22 职场文书
MySQL分库分表详情
2021/09/25 MySQL
OpenCV实现普通阈值
2021/11/17 Java/Android
python字符串拼接.join()和拆分.split()详解
2021/11/23 Python
python中出现invalid syntax报错的几种原因分析
2022/02/12 Python