ectouch手机版领取红包功能

更新时间:2016-10-10 点击量:2049

ectouch手机版领取红包功能

实现ectouch手机版领取红包功能,领取线下红包,ecshop系统稍加修改就可用。

开发思想:

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

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

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

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

前端代码:

<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('成功领取红包');//by uuecs.com
}if(html == 'no_bouns'){
alert('已经没有红包了哦');
}if(html == 'no_start_date'){
alert('领取红包的时间还没到哦');
}if(html == 'no_end_date'){
alert('你来晚了哦,红包已经结束了哦');
}if(html == 'pull_bonus'){
alert('你咋又来了呢,每个ID只能领取一次哦');
}
        }    
    });    
}</script>
<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'){   // by uuecs.com
                alert('成功领取红包');     
            }else{
                alert(html);    
            }
        }    
    });    
}
function check_user_bonus(){//检测用户是否领取过Ectouch红包
    $.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;
    }


新增文件: model 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){//zuimoban.com
         $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;
     }
    
}



支付宝扫码打赏 微信打赏

如果文章对您有帮助,就打赏一个吧

在线客服

客户服务

热线电话:

0755-36656507 15889489919 服务时间:

周一到周六:9:00-18:00

在线QQ客服

在线微信客服

关于我们 常见问题

支付方式 加盟合作

提交需求
优惠红包 购物车0 反馈留言 返回顶部