PHP转盘抽奖接口实例

  本文实例讲述了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程序设计有所帮助。