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 上传文件大小限制
Jul 05 PHP
php自定义session示例分享
Apr 22 PHP
CI框架Session.php源码分析
Nov 03 PHP
smarty内置函数capture用法分析
Jan 22 PHP
CodeIgniter表单验证方法实例详解
Mar 03 PHP
PHP的邮件群发系统phplist配置方法详细总结
Mar 30 PHP
thinkPHP引入类的方法详解
Dec 08 PHP
PHP实现登陆表单提交CSRF及验证码
Jan 24 PHP
Redis构建分布式锁
Mar 28 PHP
PHP命名空间namespace及use的简单用法分析
Aug 03 PHP
PHP7内核之Reference详解
Mar 14 PHP
thinkphp框架表单数组实现图片批量上传功能示例
Apr 04 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
造就帕卡马拉的帕卡斯是怎么被发现的
2021/03/03 咖啡文化
BBS(php &amp; mysql)完整版(五)
2006/10/09 PHP
php discuz 主题表和回帖表的设计
2009/03/13 PHP
php 调用远程url的六种方法小结
2009/11/02 PHP
通用PHP动态生成静态HTML网页的代码
2010/03/04 PHP
PHP原生模板引擎 最简单的模板引擎
2012/04/25 PHP
使用xampp搭建运行php虚拟主机的详细步骤
2015/10/21 PHP
php常量详细解析
2015/10/27 PHP
详解Yaf框架PHPUnit集成测试方法
2017/12/27 PHP
tp5(thinkPHP5框架)使用DB实现批量删除功能示例
2019/05/28 PHP
wordpress之js库集合研究介绍
2007/08/17 Javascript
js日历功能对象
2012/01/12 Javascript
Jquery实现显示和隐藏的4种简单方式
2013/08/28 Javascript
微信小程序的动画效果详解
2017/01/18 Javascript
详解vue-router 2.0 常用基础知识点之router.push()
2017/05/10 Javascript
angularjs封装$http为factory的方法
2017/05/18 Javascript
JS实现下拉菜单列表与登录注册弹窗效果
2017/08/10 Javascript
vue用addRoutes实现动态路由的示例
2017/09/15 Javascript
详解vue-cli之webpack3构建全面提速优化
2017/12/25 Javascript
详解Angular调试技巧之报错404(not found)
2018/01/31 Javascript
怎样在vue项目下添加ESLint的方法
2019/05/16 Javascript
js实现div色块碰撞
2020/01/16 Javascript
pandas 读取各种格式文件的方法
2018/06/22 Python
pytorch使用指定GPU训练的实例
2019/08/19 Python
Keras 数据增强ImageDataGenerator多输入多输出实例
2020/07/03 Python
Python爬虫使用bs4方法实现数据解析
2020/08/25 Python
从零实现一个自定义html5播放器的示例代码
2017/08/01 HTML / CSS
雅萌 (YA-MAN) :日本美容家电领域的龙头企业
2017/05/12 全球购物
英国领先的酒杯和水晶玻璃器皿制造商:Dartington Crystal
2019/06/23 全球购物
Paradox London官方网站:英国新娘鞋婚礼鞋品牌
2019/08/29 全球购物
公司领导九九重阳节发言稿2014
2014/09/25 职场文书
党员个人批评与自我批评
2014/10/14 职场文书
2019年“红色之旅”心得体会1000字(3篇)
2019/09/27 职场文书
python制作图形界面的2048游戏, 基于tkinter
2021/04/06 Python
pytorch 使用半精度模型部署的操作
2021/05/24 Python
MySQL数据管理操作示例讲解
2022/12/24 MySQL