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 相关文章推荐
source.php查看源文件
Dec 09 PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
Apr 29 PHP
php+mysqli使用预处理技术进行数据库查询的方法
Jan 28 PHP
php基于socket实现SMTP发送邮件的方法
Mar 05 PHP
php从给定url获取文件扩展名的方法
Mar 14 PHP
ThinkPHP实现更新数据实例详解(demo)
Jun 29 PHP
Zend Framework入门教程之Zend_Config组件用法详解
Dec 09 PHP
详解配置 Apache 服务器支持 PHP 文件的解析
Feb 15 PHP
老生常谈PHP面向对象之命令模式(必看篇)
May 24 PHP
PHP简单实现二维数组赋值与遍历功能示例
Oct 19 PHP
php实现的rc4加密解密类定义与用法示例
Aug 16 PHP
php实现数组中出现次数超过一半的数字的统计方法
Oct 14 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作的文本留言本的例子(五)
2006/10/09 PHP
php include,include_once,require,require_once
2008/09/05 PHP
PHP基础之运算符的使用方法
2013/04/28 PHP
去除php注释和去除空格函数分享
2014/03/13 PHP
基于JQuery+PHP编写砸金蛋中奖程序
2015/09/08 PHP
php中上传文件的的解决方案
2018/09/25 PHP
PHP 实现 JSON 数据的编码和解码操作详解
2020/04/22 PHP
40个有创意的jQuery图片、内容滑动及弹出插件收藏集之一
2011/12/31 Javascript
ajax异步刷新实现更新数据库
2012/12/03 Javascript
JavaScript中为什么null==0为false而null大于=0为true(个人研究)
2013/09/16 Javascript
JS增加行复制行删除行的实现代码
2013/11/09 Javascript
JavaScript把数组作为堆栈使用的方法
2015/03/20 Javascript
浅谈javascript获取元素transform参数
2015/07/24 Javascript
jquery仿百度百科底部浮动导航特效
2015/08/08 Javascript
AngularJS手动表单验证
2016/02/01 Javascript
Js实现简单的小球运动特效
2016/02/18 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
2016/09/02 Javascript
webpack+vue.js快速入门教程
2016/10/12 Javascript
利用JS判断字符串是否含有数字与特殊字符的方法小结
2016/11/25 Javascript
一次记住JavaScript的6个正则表达式方法
2018/02/22 Javascript
微信小程序如何使用canvas二维码保存至手机相册
2019/07/15 Javascript
云服务器部署Node.js项目的方法步骤(小白系列)
2020/03/23 Javascript
vue自定义树状结构图的实现方法
2020/10/18 Javascript
python 通过logging写入日志到文件和控制台的实例
2018/04/28 Python
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
2018/10/11 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
2019/06/17 Python
python面试题之列表声明实例分析
2019/07/08 Python
基于sklearn实现Bagging算法(python)
2019/07/11 Python
python3+selenium获取页面加载的所有静态资源文件链接操作
2020/05/04 Python
通过Python实现Payload分离免杀过程详解
2020/07/13 Python
Python操作word文档插入图片和表格的实例演示
2020/10/25 Python
HTML5网页音乐播放器的示例代码
2017/11/09 HTML / CSS
HTML5之SVG 2D入门3—文本与图像及渲染文本介绍
2013/01/30 HTML / CSS
2014工程部年度工作总结
2014/12/17 职场文书
房产证明范本
2015/06/19 职场文书
教师远程培训心得体会
2016/01/09 职场文书