码迷,mamicode.com
首页 > 其他好文 > 详细

ecshop 点击领取红包

时间:2015-12-19 11:00:02      阅读:1076      评论:0      收藏:0      [点我收藏+]

标签:

思路:

1.领取红包:也就是传递一个红包ID,和user_id然后update更新过来

2.获取未领取过的红包列表:然后随机函数array_rand($arr,1),随机返回一个数组,从而获得红包列表的红包ID

以上两步基本满足,领取红包功能

3.判断该用户是否已经领取过红包

 

基本代码

html代码1: 

<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只能领取一次哦‘);
}else{
alert(‘error‘);
}


        }    
    });    
}
</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;
     }
    
}

 

ecshop 点击领取红包

标签:

原文地址:http://www.cnblogs.com/wesky/p/5058730.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!