当前位置:首页 > PHP教程 > php面向对象 > 列表

PHP转盘抽奖接口实例

发布:smiling 来源: PHP粉丝网  添加日期:2021-05-10 21:56:10 浏览: 评论:0 

这篇文章主要介绍了PHP转盘抽奖接口的实现方法,实例分析了随机抽奖接口的实现原理与对应数据库操作的技巧,需要的朋友可以参考下

本文实例讲述了PHP转盘抽奖接口的实现方法。分享给大家供大家参考。具体如下:

这里的转盘抽奖随机返回一个转盘角度,概率可自己定义

lottery_get.php接口文件如下:

  1. <?php  
  2. /*session_start(); 
  3. if(!isset($_SESSION['zaszh_user_id'])){ 
  4.     echo json_encode(array('status'=>'error','msg'=>'连接超时,请重新打开页面。')); 
  5.     exit; 
  6. } 
  7. $user_id = $_SESSION['zaszh_user_id'];*/  
  8.  
  9. $user_id = 1; // 测试用  
  10.  
  11. // 转盘区域  
  12. $arr_area = array(  
  13.     '0' => array('min_angle'=>1,'max_angle'=>45,'prize'=>'小米'), 
  14.     '1' => array('min_angle'=>46,'max_angle'=>90,'prize'=>'拍立得'), 
  15.     '2' => array('min_angle'=>91,'max_angle'=>135,'prize'=>'10元话费'), 
  16.     '3' => array('min_angle'=>136,'max_angle'=>180,'prize'=>'5元话费'), 
  17.     '4' => array('min_angle'=>181,'max_angle'=>225,'prize'=>'谢谢参与'), 
  18.     '5' => array('min_angle'=>226,'max_angle'=>270,'prize'=>'谢谢参与'), 
  19.     '6' => array('min_angle'=>271,'max_angle'=>315,'prize'=>'谢谢参与'), 
  20.     '7' => array('min_angle'=>316,'max_angle'=>360,'prize'=>'谢谢参与')  
  21. );  
  22.  
  23. // 选定区域  
  24. $area_selected = array();  
  25. // 随机抽取  
  26. $num_rand = mt_rand(1,10);  
  27. switch($num_rand){  
  28.     // 小米  
  29.     case 1: $area_selected = $arr_area[0]; break;  
  30.     // 拍立得  
  31.     case 2: $area_selected = $arr_area[1]; break;  
  32.     // 10元话费  
  33.     case 3: $area_selected = $arr_area[2]; break;  
  34.     // 5元话费  
  35.     case 4: $area_selected = $arr_area[3]; break;  
  36.     // 谢谢参与  
  37.     default:  
  38.         switch(mt_rand(1,4)){  
  39.             case 1: $area_selected = $arr_area[4]; break;  
  40.             case 2: $area_selected = $arr_area[5]; break;  
  41.             case 3: $area_selected = $arr_area[6]; break;  
  42.             case 4: $area_selected = $arr_area[7]; break;  
  43.         }  
  44.         break;  
  45. }  
  46. echo $area_selected['prize'];  
  47.  
  48. require('connect_database.php');  
  49. // 扣除答题积分  
  50. $mysqli->query("update zaszh_user set answer_points=answer_points-5 where id='{$user_id}' and answer_points>=5");  
  51. if($mysqli->affected_rows){  
  52.     // 有积分  
  53.     // 记录积分消耗  
  54.     $mysqli->query("insert into zaszh_answer_points_consume(user_id,points_consume,consume_for,create_date) values('{$user_id}',5,'lottery',unix_timestamp(now()))");  
  55.     switch($area_selected['prize']){  
  56.         case '小米':  
  57.             $mysqli->query("update zaszh_prize_surplus set surplus=surplus-1 where prize='小米' and surplus>0");  
  58.             if($mysqli->affected_rows){  
  59.                 // 有剩余  
  60.                 $mysqli->query("insert into zaszh_award(user_id,prize,create_date) values('{$user_id}','小米',unix_timestamp(now()))");  
  61.                 if($mysqli->affected_rows){  
  62.                     echo json_encode(array('status'=>'success','msg'=>'小米'));  
  63.                 }else{  
  64.                     // 获奖失败  
  65.                 }  
  66.             }else{  
  67.                 // 无剩余  
  68.             }  
  69.             break;  
  70.         case '拍立得':  
  71.             $mysqli->query("update zaszh_prize_surplus set surplus=surplus-1 where prize='拍立得' and surplus>0");  
  72.             if($mysqli->affected_rows){  
  73.                 // 有剩余  
  74.                 $mysqli->query("insert into zaszh_award(user_id,prize,create_date) values('{$user_id}','拍立得',unix_timestamp(now()))");  
  75.                 if($mysqli->affected_rows){  
  76.                     echo json_encode(array('status'=>'success','msg'=>'拍立得'));  
  77.                 }else{  
  78.                     // 获奖失败  
  79.                 }  
  80.             }else{  
  81.                 // 无剩余  
  82.             }  
  83.             break;  
  84.         case '10元话费':  
  85.             $mysqli->query("update zaszh_telephone_charge_surplus set charge_surplus=charge_surplus-10 where date=substring(now(),1,10) and charge_surplus>=10");  
  86.             if($mysqli->affected_rows){  
  87.                 // 有剩余  
  88.                 $mysqli->query("insert into zaszh_award(user_id,prize,create_date) values('{$user_id}','10元话费',unix_timestamp(now()))");  
  89.                 if($mysqli->affected_rows){  
  90.                     echo json_encode(array('status'=>'success','msg'=>'10元话费'));  
  91.                 }else{  
  92.                     // 获奖失败  
  93.                 }  
  94.             }else{  
  95.                 // 无剩余  
  96.             }  
  97.             break;  
  98.         case '5元话费':  
  99.             $mysqli->query("update zaszh_telephone_charge_surplus set charge_surplus=charge_surplus-5 where date=substring(now(),1,10) and charge_surplus>=5");  
  100.             if($mysqli->affected_rows){  
  101.                 // 有剩余  
  102.                 $mysqli->query("insert into zaszh_award(user_id,prize,create_date) values('{$user_id}','5元话费',unix_timestamp(now()))");  
  103.                 if($mysqli->affected_rows){  
  104.                     echo json_encode(array('status'=>'success','msg'=>'5元话费'));  
  105.                 }else{  
  106.                     // 获奖失败  
  107.                 }  
  108.             }else{  
  109.                 // 无剩余  
  110.             }  
  111.             break;  
  112.         default:  
  113.             echo json_encode(array('status'=>'success','msg'=>'谢谢参与'));  
  114.     }  
  115. }else{  
  116.     // 无积分  
  117.     echo json_encode(array('status'=>'error','msg'=>'您的积分不足。'));  
  118. }  
  119. $mysqli->close();

Tags: PHP转盘抽奖接口

分享到: