PHP轉(zhuǎn)盤(pán)抽獎(jiǎng)接口實(shí)例

字號(hào):


    這篇文章主要介紹了PHP轉(zhuǎn)盤(pán)抽獎(jiǎng)接口的實(shí)現(xiàn)方法,實(shí)例分析了隨機(jī)抽獎(jiǎng)接口的實(shí)現(xiàn)原理與對(duì)應(yīng)數(shù)據(jù)庫(kù)操作的技巧,需要的朋友可以參考下
    本文實(shí)例講述了PHP轉(zhuǎn)盤(pán)抽獎(jiǎng)接口的實(shí)現(xiàn)方法。分享給大家供大家參考。具體如下:
    這里的轉(zhuǎn)盤(pán)抽獎(jiǎng)隨機(jī)返回一個(gè)轉(zhuǎn)盤(pán)角度,概率可自己定義
    lottery_get.php接口文件如下:
    代碼如下:
    <?php
    /*session_start();
    if(!isset($_SESSION['zaszh_user_id'])){
    echo json_encode(array('status'=>'error','msg'=>'連接超時(shí),請(qǐng)重新打開(kāi)頁(yè)面。'));
    exit;
    }
    $user_id = $_SESSION['zaszh_user_id'];*/
    $user_id = 1; // 測(cè)試用
    // 轉(zhuǎn)盤(pán)區(qū)域
    $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元話費(fèi)'),
    '3' => array('min_angle'=>136,'max_angle'=>180,'prize'=>'5元話費(fèi)'),
    '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'=>'謝謝參與')
    );
    // 選定區(qū)域
    $area_selected = array();
    // 隨機(jī)抽取
    $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元話費(fèi)
    case 3: $area_selected = $arr_area[2]; break;
    // 5元話費(fèi)
    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{
    // 獲獎(jiǎng)失敗
    }
    }else{
    // 無(wú)剩余
    }
    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{
    // 獲獎(jiǎng)失敗
    }
    }else{
    // 無(wú)剩余
    }
    break;
    case '10元話費(fèi)':
    $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元話費(fèi)',unix_timestamp(now()))");
    if($mysqli->affected_rows){
    echo json_encode(array('status'=>'success','msg'=>'10元話費(fèi)'));
    }else{
    // 獲獎(jiǎng)失敗
    }
    }else{
    // 無(wú)剩余
    }
    break;
    case '5元話費(fèi)':
    $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元話費(fèi)',unix_timestamp(now()))");
    if($mysqli->affected_rows){
    echo json_encode(array('status'=>'success','msg'=>'5元話費(fèi)'));
    }else{
    // 獲獎(jiǎng)失敗
    }
    }else{
    // 無(wú)剩余
    }
    break;
    default:
    echo json_encode(array('status'=>'success','msg'=>'謝謝參與'));
    }
    }else{
    // 無(wú)積分
    echo json_encode(array('status'=>'error','msg'=>'您的積分不足。'));
    }
    $mysqli->close();
    希望本文所述對(duì)大家的php程序設(shè)計(jì)有所幫助。