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 相关文章推荐
多重?l件?合查?(一)
Oct 09 PHP
PHP 反射机制实现动态代理的代码
Oct 22 PHP
PHP 服务器配置(使用Apache及IIS两种方法)
Jun 01 PHP
收藏的PHP常用函数 推荐收藏保存
Feb 21 PHP
PHP实现异步调用方法研究与分享
Oct 27 PHP
PHP调用Linux的命令行执行文件压缩命令
Jan 27 PHP
PHP_Cooikes不同页面无法传递的解决方法
Mar 07 PHP
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
May 04 PHP
利用PHP函数计算中英文字符串长度的方法
Nov 11 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
Nov 17 PHP
ThinkPHP3.2框架操作Redis的方法分析
May 05 PHP
PHP中将一个字符串部分字符用星号*替代隐藏的实现代码
Sep 08 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查询域名状态whois的类
2006/11/25 PHP
php的access操作类
2008/04/09 PHP
php返回当前日期或者指定日期是周几
2015/05/21 PHP
php原生导出excel文件的两种方法(推荐)
2016/11/19 PHP
Laravel相关的一些故障解决
2020/08/19 PHP
用Laravel轻松处理千万级数据的方法实现
2020/12/25 PHP
JS数组的赋值介绍
2014/03/10 Javascript
使用jquery实现以post打开新窗口
2014/03/19 Javascript
简述AngularJS相关的一些编程思想
2015/06/23 Javascript
jQuery插件Flexslider实现图片轮播、图文结合滑动切换效果
2020/04/16 Javascript
jQuery中的AjaxSubmit使用讲解
2016/09/25 Javascript
快速将Vue项目升级到webpack3的方法步骤
2017/09/14 Javascript
在一个页面实现两个zTree联动的方法
2017/12/20 Javascript
React Native 自定义下拉刷新上拉加载的列表的示例
2018/03/01 Javascript
使用Angular CLI进行Build(构建)和Serve详解
2018/03/24 Javascript
Vue2 轮播图slide组件实例代码
2018/05/31 Javascript
小程序点赞收藏功能的实现代码示例
2018/09/07 Javascript
Vue实现简单计算器案例
2020/02/25 Javascript
JS 5种遍历对象的方式
2020/06/16 Javascript
[04:48]DOTA2上海特锦赛小组赛第三日 TOP10精彩集锦
2016/02/28 DOTA
[50:38]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第二场 3月7日
2021/03/11 DOTA
Python字典操作简明总结
2015/04/13 Python
Python中tell()方法的使用详解
2015/05/24 Python
使用Python的turtle模块画图的方法
2017/11/15 Python
python2.7无法使用pip的解决方法(安装easy_install)
2018/04/03 Python
python解析json串与正则匹配对比方法
2018/12/20 Python
python读取ini配置文件过程示范
2019/12/23 Python
Python 文件数据读写的具体实现
2020/01/24 Python
python实现贪吃蛇游戏源码
2020/03/21 Python
Django中FilePathField字段的用法
2020/05/21 Python
python爬虫分布式获取数据的实例方法
2020/11/26 Python
PHP面试题-$message和$$message的区别
2015/12/08 面试题
保安员岗位职责
2013/11/17 职场文书
2015年党务公开工作总结
2015/05/19 职场文书
2016年世界人口日宣传活动总结
2016/04/05 职场文书
Python MNIST手写体识别详解与试练
2021/11/07 Python