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 什么是PEAR?(第三篇)
Mar 19 PHP
php 空格,换行,跳格使用说明
Dec 18 PHP
PHP基础教程(php入门基础教程)一些code代码
Jan 06 PHP
浅析十款PHP开发框架的对比
Jul 05 PHP
5种PHP创建数组的实例代码分享
Jan 17 PHP
DOM基础及php读取xml内容操作的方法
Jan 23 PHP
php数组随机排序实现方法
Jun 13 PHP
PHP中常见的缓存技术实例分析
Sep 23 PHP
php简单实现批量上传图片的方法
May 09 PHP
PHP与JavaScript针对Cookie的读写、交互操作方法详解
Aug 07 PHP
php 读取文件夹下所有图片、文件的实例
Oct 17 PHP
Laravel 自动转换长整型雪花 ID 为字符串的实现
Oct 27 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
为了这两部电子管收音机,买了6套全新电子管和10粒刻度盘灯泡
2021/03/02 无线电
PHP安全配置详细说明
2011/09/26 PHP
探讨:如何编写PHP扩展
2013/06/13 PHP
php.ini修改php上传文件大小限制的方法详解
2013/06/17 PHP
PHP获取指定月份第一天和最后一天的方法
2015/07/18 PHP
php之header的不同用法总结(实例讲解)
2017/11/28 PHP
Laravel框架实现调用百度翻译API功能示例
2019/05/30 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
2020/05/27 PHP
JS判断两个时间大小的示例代码
2014/01/28 Javascript
JavaScript实现Java中StringBuffer的方法
2015/02/09 Javascript
深入探讨javascript中的数据类型
2015/03/04 Javascript
Jquery遍历select option和添加移除option的实现方法
2016/08/26 Javascript
js发送短信倒计时的简单实现方法
2016/09/08 Javascript
jQuery中extend函数简单用法示例
2017/10/11 jQuery
解决vue中对象属性改变视图不更新的问题
2018/02/23 Javascript
React SSR样式及SEO的实践
2018/10/22 Javascript
微信小程序调用wx.getImageInfo遇到的坑解决
2020/05/31 Javascript
vue中的v-model原理,与组件自定义v-model详解
2020/08/04 Javascript
JS实现拖动模糊框特效
2020/08/25 Javascript
Vue自定义多选组件使用详解
2020/09/08 Javascript
[52:41]OG vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/20 DOTA
Python的Flask框架中集成CKeditor富文本编辑器的教程
2016/06/13 Python
python使用代理ip访问网站的实例
2018/05/07 Python
新年快乐! python实现绚烂的烟花绽放效果
2019/01/30 Python
Python如何把多个PDF文件合并代码实例
2020/02/13 Python
Pycharm及python安装详细步骤及PyCharm配置整理(推荐)
2020/07/31 Python
k-means 聚类算法与Python实现代码
2020/06/01 Python
Python依赖包迁移到断网环境操作
2020/07/13 Python
python PyAUtoGUI库实现自动化控制鼠标键盘
2020/09/09 Python
惠普墨西哥官方商店:HP墨西哥
2016/12/01 全球购物
美国木工工具和用品商店:Woodcraft
2019/10/30 全球购物
合同专员岗位职责
2013/12/18 职场文书
社会实践评语
2014/04/28 职场文书
大学英语专业求职信
2014/06/21 职场文书
《跨越海峡的生命桥》教学反思
2016/02/18 职场文书
如何解决php-fpm启动不了问题
2021/11/17 PHP