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应用技巧
Mar 27 PHP
PHP 伪静态隐藏传递参数名的四种方法
Feb 22 PHP
paypal即时到账php实现代码
Nov 28 PHP
php数据结构 算法(PHP描述) 简单选择排序 simple selection sort
Aug 09 PHP
供参考的 php 学习提高路线分享
Oct 23 PHP
PHP实现变色验证码实例
Jan 06 PHP
将CMYK颜色值和RGB颜色相互转换的PHP代码
Jul 28 PHP
php+curl 发送图片处理代码分享
Jul 09 PHP
php打包压缩文件之ZipArchive方法用法分析
Apr 30 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
Aug 19 PHP
thinkphp的dump函数无输出实例代码
Nov 15 PHP
启用OPCache提高PHP程序性能的方法
Mar 21 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
如何实现给定日期的若干天以后的日期
2006/10/09 PHP
PHP字符串的连接的简单实例
2013/12/30 PHP
PHP $_FILES中error返回值详解
2014/01/30 PHP
利用谷歌 Translate API制作自己的翻译脚本
2014/06/04 PHP
PHP从数组中删除元素的四种方法实例
2017/05/12 PHP
浅谈PHP中pack、unpack的详细用法
2018/03/12 PHP
DOM 基本方法
2009/07/18 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
2015/07/17 Javascript
JS实现网页顶部向下滑出的全国城市切换导航效果
2015/08/22 Javascript
jQuery实现Meizu魅族官方网站的导航菜单效果
2015/09/14 Javascript
JavaScript基础篇(6)之函数表达式闭包
2015/12/11 Javascript
基于jquery实现弹幕效果
2016/09/29 Javascript
js利用appendChild对标签进行排序的实现方法
2016/10/16 Javascript
详解Angular 开发环境搭建
2017/06/22 Javascript
详解用node搭建简单的静态资源管理器
2017/08/09 Javascript
clipboard.js在移动端复制失败的解决方法
2018/06/13 Javascript
vue父组件异步获取数据传给子组件的方法
2018/07/26 Javascript
解决vue-router在同一个路由下切换,取不到变化的路由参数问题
2018/09/01 Javascript
原生js实现Flappy Bird小游戏
2018/12/24 Javascript
node.js中fs文件系统模块的使用方法实例详解
2020/02/13 Javascript
Django中模型Model添加JSON类型字段的方法
2015/06/17 Python
Python2.7简单连接与操作MySQL的方法
2016/04/27 Python
python实现在pandas.DataFrame添加一行
2018/04/04 Python
python3 判断列表是一个空列表的方法
2018/05/04 Python
Python按钮的响应事件详解
2019/03/04 Python
如何使用python爬虫爬取要登陆的网站
2019/07/12 Python
使用Python Tkinter实现剪刀石头布小游戏功能
2020/10/23 Python
Java如何读取CLOB字段
2013/10/10 面试题
找工作求职信
2014/07/07 职场文书
国际贸易系求职信
2014/08/09 职场文书
2014学校领导四风问题对照检查材料思想汇报
2014/09/22 职场文书
2014年行政助理工作总结
2014/11/19 职场文书
写作之关于描写老人的好段摘抄
2019/11/14 职场文书
不要在HTML中滥用div
2021/05/08 HTML / CSS
Python的property属性详细讲解
2022/04/11 Python
MySQL的存储过程和相关函数
2022/04/26 MySQL