ecshop 点击领取红包

思路:

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

}
时间: 2024-10-11 00:36:08

ecshop 点击领取红包的相关文章

ecshop加入购物车效果(各个页面)

ecshop中点击加入购物车出现下图 通过以下代码改成下图效果 1.后台网店设置 购物车确定提示  选择为“提示用户,点击“确定”进购物车” 2.打开js/common.js  104行就是function addToCartResponse中的case '1' 替换之前的 if (confirm(result.message)) location.href = cart_url;为 opencartDiv(result.shop_price,result.goods_name,result.g

Android中微信抢红包插件原理解析和开发实现

一.前言 自从去年中微信添加抢红包的功能,微信的电商之旅算是正式开始正式火爆起来.但是作为Android开发者来说,我们在抢红包的同时意识到了很多问题,就是手动去抢红包的速度慢了,当然这些有很多原因导致了.或许是网络的原因,而且这个也是最大的原因.但是其他的不可忽略的因素也是要考虑到进去的,比如在手机充电锁屏的时候,我们并不知道有人已经开始发红包了,那么这时候也是让我们丧失了一大批红包的原因.那么关于网络的问题,我们开发者可能用相关技术无法解决(当然在Google和Facebook看来的话,他们

Android AccessibilityService

1 AccessibilityService的介绍 许多Android使用者因为各种情况导致他们要以不同的方式与手机交互.这包括了在有些用户在视力上.身体上.年龄上的问题导致他们不能看清完整的屏幕或者使用触屏.也包括了无法很好接收到语音信息和提示的听力能力比较弱的用户. Android提供了Accessibility功能和服务来帮助这些用户更简单的操作折欸,包括文字转语音(这个不支持中文),触觉反馈.手势操作.轨迹球和手柄操作. .Accesssibility叫做Android中的钩子.在Win

微信现金红包接口实现红包发放

微信现金红包接口实现红包发放: 一:流程:[ 流程:微信用户访问红包活动页面-->后端判断是否是微信访问的 [否:提示用微信打开连接,是:提示用户是否授权允许,获取其的用户信息[openID等信息]]--> 进入红包活动页面--->用户点击领取红包[判断是否领取过红包]是:[提示已领取过红包]否 -->后端程序调用接口发放红包 -->微信用户在微信中收到红包 -->打开红包 -->红包金额会添加到钱包零钱里 -->完成红包发放. ] 二:要实现微信现金红包接

日用品扫一扫微信红包活动

扫一扫微信红包活动 过去几年,支付宝在移动端一直被微信支付压着打,至少在线下支付上,腾讯已迎头赶上,在出行.零售.生活服务诸多领域的覆盖率不输支付宝钱包.总之,腾讯移动支付业务做起来了,而核心能力是社交. 就是由于腾讯这边放宽了,扫一扫微信红包活动越来越受大家欢迎,那么扫一扫微信红包活动.扫一扫微信红包活动系统开发.扫一艘微信红包活动可找小编:136-0243-3692. 一.扫一扫微信红包活动是怎么来操作的: 扫一扫微信红包活动直接跳转至红包活动领取页面,免微信授权登陆可以直观的展示企业品牌和

留言板制作

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> a { text-decoration: none; } .wrap { width: 600px; height: 200px; border: 1px solid #CCCCCC; border-

安卓微信自动抢红包插件优化和实现

转载请注明作者AndroidMSky和链接http://blog.csdn.net/AndroidMsky/article/details/53490459 又是兴趣系列 网上有很多自动强红包的例子和代码,笔者也是做了一些优化. 先说说自己的两个个优势 1.可以在聊天界面自动强不依赖于通知栏推送 2.可以在屏幕熄灭的时候的时候点亮屏幕自动抢(目前只测过flyme) 先上图: 代码传送门: https://github.com/AndroidMsky/WXhongbao 欢迎点星星~ 原理: 通过

南宁口令红包功能开发方案

成功只有两点 一是做事成功,二是做人成功.做人不成功,成功是暂时的:做人成功,不成功也是暂时的.要做事,先做人. 无论是企业商家,还是个人,都可以在南宁口令红包系统小程序系统平台输入语音口令.红包金额.红包个数,一键支付即可生成个性化红包海报,分享至微信好友.微信群.朋友圈,用户只需说对设定的语音口令,即可获得红包. 如果企业想通过南宁口令红包系统小程序系统平台做裂变式营销,可以将语音口令设置为广告语,并且红包金额达到一定数值,还可在发红包页面点击发布图文广告,并且可以加上网址,把领取红包的用户

【干货】中小公众号运营者必备技能整理(2019年版)

本文将要跟大家分享的是,我们团队这些年在公众号运营过程中积累的经验,以及一些必备的运营技能. 由于我们团队运营的公众号大都是中小公众号(粉丝数几百.几千到几万),因此,本文所分享的技能可能针对中小公众号特别实用,而对大型公众号可能就用处不大了. 本文不会给大家推荐一大堆运营工具,因为那样的推荐网上太多了,看得人眼花缭乱.笔者只给大家推荐一款我们团队一直在使用的第三方平台(微小助),下文中所提到的全部技能均已包含在微小助功能服务包里面,对于中小公众号运营者来讲,极大的简化了运营工作,不会到处登陆账