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面向对象全攻略 (六)__set() __get() __isset() __unset()的用法
Sep 30 PHP
php 获取客户端的真实ip
Nov 30 PHP
ezSQL PHP数据库操作类库
May 16 PHP
应用开发中涉及到的css和php笔记分享
Aug 02 PHP
Codeigniter中禁止A Database Error Occurred错误提示的方法
Jun 12 PHP
浅析php原型模式
Nov 25 PHP
php自定文件保存session的方法
Dec 10 PHP
typecho插件编写教程(三):保存配置
May 28 PHP
在WordPress的文章编辑器中设置默认内容的方法
Dec 29 PHP
PHP实现导出excel数据的类库用法示例
Oct 15 PHP
php利用云片网实现短信验证码功能的示例代码
Nov 18 PHP
PHP unset函数原理及使用方法解析
Aug 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
一台收音机,让一家人都笑逐颜开!
2020/08/21 无线电
PHP url 加密解密函数代码
2011/08/26 PHP
php禁止浏览器使用缓存页面的方法
2014/11/07 PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
2019/02/20 PHP
ASP SQL防注入的方法
2008/12/25 Javascript
fancybox1.3.1 基于Jquery的插件在IE中图片显示问题
2010/10/01 Javascript
jQuery function的正确书写方法
2013/08/02 Javascript
NodeJS url验证(url-valid)的使用方法
2013/11/18 NodeJs
JavaScript数据结构与算法之栈详解
2015/03/12 Javascript
Angular中$compile源码分析
2016/01/28 Javascript
js实现适合新闻类图片的轮播效果
2017/02/05 Javascript
Bootstrap响应式表格详解
2017/05/23 Javascript
JS对象序列化成json数据和json数据转化为JS对象的代码
2017/08/23 Javascript
在JS循环中使用async/await的方法
2018/10/12 Javascript
Vue运用transition实现过渡动画
2019/05/06 Javascript
vue实现单一筛选、删除筛选条件
2020/10/26 Javascript
python选择排序算法实例总结
2015/07/01 Python
python处理html转义字符的方法详解
2016/07/01 Python
Python编程使用NLTK进行自然语言处理详解
2017/11/16 Python
python版微信跳一跳游戏辅助
2018/01/11 Python
浅谈Tensorflow模型的保存与恢复加载
2018/04/26 Python
Django + Uwsgi + Nginx 实现生产环境部署的方法
2018/06/20 Python
Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解
2019/02/28 Python
python实现吃苹果小游戏
2020/03/21 Python
英国二手物品交易网站:Preloved
2017/10/06 全球购物
Ralph Lauren英国官方网站:Ralph Lauren UK
2018/04/03 全球购物
3D空间设计学生找工作的自我评价
2013/10/28 职场文书
装饰资料员岗位职责
2013/12/30 职场文书
迟到检讨书800字
2014/01/13 职场文书
商场活动策划方案
2014/01/24 职场文书
党的群众路线教育实践活动宣传方案
2014/02/23 职场文书
《一个小村庄的故事》教学反思
2014/04/13 职场文书
小学社团活动总结
2014/06/27 职场文书
英语四级考试作弊检讨书
2014/09/29 职场文书
安全承诺书格式范本
2015/04/28 职场文书
2015年办公室文秘工作总结
2015/04/30 职场文书