ecshop 點擊領取紅包

思路:javascript

1.領取紅包:也就是傳遞一個紅包ID,和user_id而後update更新過來php

2.獲取未領取過的紅包列表:而後隨機函數array_rand($arr,1),隨機返回一個數組,從而得到紅包列表的紅包IDcss

以上兩步基本知足,領取紅包功能html

3.判斷該用戶是否已經領取過紅包java

 

基本代碼jquery

html代碼1: ajax

<input type="button" value="領取紅包" onClick="bouns(30)">
<script type="text/javascript" src="__PUBLIC__/js/jquery.min.js" ></script> 
<script>
function bouns($type_id){
    $.ajax({
        url:"{:url('bonus/bonus_ajax')}"+"&type_id="+$type_id,
        success: function(html){

if(html == 'ok'){
alert('成功領取紅包');
}if(html == 'no_bouns'){
alert('已經沒有紅包了哦');
}if(html == 'no_start_date'){
alert('領取紅包的時間還沒到哦');
}if(html == 'no_end_date'){
alert('你來晚了哦,紅包已經結束了哦');
}if(html == 'pull_bonus'){
alert('你咋又來了呢,每一個ID只能領取一次哦');
}sql


        }    
    });    
}
</script>

完整版html代碼:數組

<script>
$(document).ready(function(){
    $type_id = '30';
    check_user_bonus(); 
    //alert($f);
});
$('#DivBg').click(function(){
    $(this).css('display','none');    
});
// 領取紅包 function bouns(){ $.ajax({ url:
"{:url('bonus/bonus_ajax')}"+"&type_id="+$type_id, success: function(html){ if(html == 'ok'){ // 能夠根據返回的值,多作幾種選擇 alert('成功領取紅包'); }else{ alert(html); } } }); }
//檢測用戶是否領取過紅包;領取過,則不顯示;未領取就顯示紅包 function check_user_bonus(){ $.ajax({ url:
"{:url('bonus/check_user_bonus_ajax')}"+"&type_id="+$type_id, success: function (html){ if(html !=0){ // 0,顯示紅包;不然就隱藏紅包 $("#DivBg").css('display','none'); }else{ $("#DivBg").css('display','block'); } } }); } </script>

 

BonusController.php函數

public function bonus_ajax(){
        $type_id = $_GET['type_id'];
        $m = model('Bonus')->get_bonus($type_id);
        echo $m;
    }

BonusModel.class.php

<?php

defined('IN_ECTOUCH') or die('Deny Access');

class BonusModel extends BaseModel {

    /**
     * 紅包
     *
     * @access private
     * @param integer $brand_id 
     * @return array
     */
     // 獲取ecs_bouns_type   紅包類型
     function get_bonus_type($type_id=''){
         if(!empty($type_id)){    // 有值獲取單個;無值則獲取所有
            $where = ' where type_id = '.$type_id;     
         }else{
            $where = ' ';     
         }
         $sql = 'select * from '. $this->pre . 'bonus_type '.$where;
         $res = $this->query($sql);
         return $res;
     }
     // 獲取ecs_user_bouns   紅包列表(未被領取的紅包)
     function get_user_bonus($bouns_type_id=''){
         if(!empty($bouns_type_id)){    // 有值獲取單個;無值則獲取所有
            $where = ' where user_id =0 and bonus_type_id = '.$bouns_type_id;       //必須是「線下發放紅包」 
         }else{
            $where = ' ';     
         }
         $sql = 'select bonus_id from '. $this->pre . 'user_bonus '.$where;
         $res = $this->query($sql);
         return $res;
     }
     // 合併紅包類型 與紅包列表
     function bouns_info($bouns_type_id){
         $bouns_type = $this->get_bonus_type($bouns_type_id);
         $bouns_type[0]['user_bouns'] = $this->get_user_bonus($bouns_type_id);
         return $bouns_type;
     }
     //檢測是否重複領取; 已經領取( >1 )
     function check_user_bonus($bonus_type_id){
         $sql = 'select * from '. $this->pre .'user_bonus where bonus_type_id = '.$bonus_type_id.' and user_id='.$_SESSION['user_id'];
         $result = $this->query($sql);
         return count($result);
     }
     // 領取紅包
     function get_bonus($type_id){
        $user_id = $_SESSION['user_id'];
        $time = gmtime();
        
        //紅包類型
        $bonus_type = $this->get_bonus_type($type_id);
        // 紅包列表
        $bouns_list = $this->get_user_bonus($type_id);
        // 是否領取過紅包
        $check_bonus = $this->check_user_bonus($type_id);
    
        
        // 判斷條件  
        if(empty($user_id)){
            $str = 'no_user';        // 1.未登陸
        }elseif(count($bouns_list) < 1){
            $str = 'no_bouns';      // 3.沒有紅包(紅包領取完了)
        }elseif($bonus_type[0]['send_type'] !=3){  //2.紅包類型不對  ,必須"線下發放紅包"
            $str = 'send_type_err';  // 
        }elseif($time < $bonus_type[0]['use_start_date']){   //4.領取紅包時間還未到
            $str = 'no_start_date';
        }elseif($time > $bonus_type[0]['use_end_date']){   //5.領取紅包時間還已經結束
            $str = 'no_end_date';
        }elseif($check_bonus > 0){    // 6.已經領取過紅包
            $str = 'pull_bonus';
        }else{
            $rand_key = array_rand($bouns_list,1);
            $rand_id = $bouns_list[$rand_key]['bonus_id'];
            $sql = "UPDATE ". $this->pre ."user_bonus SET user_id = ".$user_id.",used_time = ".$time." where bonus_id=".$rand_id;
            if($this->query($sql)){
                $str = 'ok';    
            }else{
                $str = 'err';
            }
        }
        echo $str;
     }
    
}
相關文章
相關標籤/搜索