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字符串截取问题
Nov 28 PHP
Linux下进行MYSQL编程时插入中文乱码的解决方案
Mar 15 PHP
php反弹shell实现代码
Apr 22 PHP
php str_pad 函数用法简介
Jul 11 PHP
在PHP中使用curl_init函数的说明
Nov 02 PHP
PHP学习笔记 IIS7下安装配置php环境
Oct 29 PHP
php猴子选大王问题解决方法
May 12 PHP
PHP超全局数组(Superglobals)介绍
Jul 01 PHP
如何使用微信公众平台开发模式实现多客服
Jan 06 PHP
smarty模板数学运算示例
Dec 11 PHP
Yii框架实现图片上传的方法详解
May 20 PHP
php xhprof使用实例详解
Apr 15 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
深入密码加salt原理的分析
2013/06/06 PHP
php+mysql实现的无限分类方法类定义与使用示例
2020/05/27 PHP
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
JavaScript面向对象编程
2008/03/02 Javascript
ppk谈JavaScript style属性
2008/10/10 Javascript
extjs 学习笔记(一) 一些基础知识
2009/10/13 Javascript
js函数排序的实例代码
2013/07/01 Javascript
JavaScript中如何通过arguments对象实现对象的重载
2014/05/12 Javascript
jQuery中add()方法用法实例
2015/01/08 Javascript
jQuery实现友好的轮播图片特效
2015/01/12 Javascript
jQuery UI库中dialog对话框功能使用全解析
2016/04/23 Javascript
jQuery插件ajaxFileUpload异步上传文件
2016/10/19 Javascript
JS中动态创建元素的三种方法总结(推荐)
2016/10/20 Javascript
String字符串截取的四种方式总结
2016/11/28 Javascript
React Native 搭建开发环境的方法步骤
2017/10/30 Javascript
基于VuePress 轻量级静态网站生成器的实现方法
2018/04/17 Javascript
jQuery实现模糊查询的方法分析
2018/05/10 jQuery
详解Python中heapq模块的用法
2016/06/28 Python
和孩子一起学习python之变量命名规则
2018/05/27 Python
Python实现读取txt文件中的数据并绘制出图形操作示例
2019/02/26 Python
SpringBoot实现登录注册常见问题解决方案
2020/03/04 Python
Python爬虫+tkinter界面实现历史天气查询的思路详解
2021/02/22 Python
使用phonegap进行提示操作的具体方法
2017/03/30 HTML / CSS
测试工程师岗位职责
2013/11/28 职场文书
致铅球运动员加油稿
2014/02/13 职场文书
黄继光的英雄事迹材料
2014/02/13 职场文书
大学军训感言1000字
2014/02/25 职场文书
祖国在我心中演讲稿200字
2014/08/28 职场文书
保险公司演讲稿
2014/09/02 职场文书
2014年服务员个人工作总结
2014/12/23 职场文书
2015年度高中教师工作总结
2015/05/26 职场文书
2015年信息技术教研组工作总结
2015/07/22 职场文书
大学生安全教育心得体会
2016/01/15 职场文书
家电创业计划书
2019/08/05 职场文书
php中pcntl_fork详解
2021/04/01 PHP