会员中心—4—积分中心

该博客主要介绍了会员中心的积分管理模块,包括每日签到赠送积分的实现和积分兑换商品的流程。详细讲解了控制器中的`jifen.php`用于签到送积分,`jifgoods.php`用于查看已兑换的商品。同时提到了涉及的数据表,如积分兑换商品表、产品表和会员表,阐述了这些表在系统中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

控制器:

    public function _initialize(){
         parent::_initialize();
         //用户积分
         $integral = M("Member")->where(array('id'=>$_SESSION['qtuid']))->getField("score");
         $this->assign("integral",$integral);
    }
    //积分
    public function jifen(){
        //产品列表
        $pro_data = $this->getPro2("积分商品",$this->lang,0,1,1,12);
        $this->assign("pro_data",$pro_data);

        $this->display(); 
    }
    //签到——积分
    public function signin(){
        $uid = I("uid");
        $where['id']=$uid;
        $where['signindata'] = date('Y-m-d', time());
        $m = M("Member");
        $exist = $m->where($where)->find();
        if ($exist) {
            // $this->error('今日已经签到');
            // return false;
            $data = 2;
        }else{
            $where2['id'] = $uid;
            $score = $m->where($where2)->getField("score");
            $data['score'] = $score+1;
            $data['signindata'] = date('Y-m-d', time());

            if($m->where($where2)->limit(1)->save($data)){
                // $this->success("签到成功",U("Member/jifen"));
                $data = 1;
            }else{
                // $this->error("签到失败");
                $data = 3;
            }  

        }

        $this -> ajaxReturn($data);

    }

    //积分兑换商品
    public function redeem(){
        // $uid = I("uid");
        $uid = $_SESSION['qtuid'];
        $gid = I("gid");

        $where['id'] = $uid;
        $m = M("Member");
        $score = $m->where($where)->getField("score");
        $prodata = M("Product")->where(array('id'=>$gid))->find();
        $price = $prodata['price'];
        if($score>=$price){
            $n=M("redeem");
            $n->user_id = $uid;
            $n->pro_id = $prodata['id'];
            $n->ProductName = $prodata['proname'];
            $n->addtime = time();
            if($n->add()){
                $where2['id'] = $uid;
                $score = $m->where($where2)->getField("score");
                $data[score]=$score-$price;
                M("Member")->where($where2)->limit(1)->save($data);
                 // $this->success("兑换成功",U("Member/jifen"));
                 $data = 1;
            }else{
                // $this->error("兑换失败");
                $data = 2;
            }


        }else{
            // $this->error("您的积分不足以兑换该商品");
            $data = 3;
        }

        $this -> ajaxReturn($data);

    }

    //已兑换的商品
    public function jifgoods(){
        $where['user_id']=$_SESSION['qtuid'];
        //收藏列表
        $m=M('Redeem');
        $data=$m->join('RIGHT JOIN tp_product ON tp_redeem.pro_id = tp_product.id' )->where($where)->select();

        import("ORG.Util.Pager");
        $count = count($data);
        $page = new Page($count,6);
        $show = $page->show();
        //已兑换的商品列表
        $redeemlist=$m->join('RIGHT JOIN tp_product ON tp_redeem.pro_id = tp_product.id' )->field('tp_redeem.*,tp_product.proname,tp_product.prophoto,tp_product.prointo')->where($where)->limit($page->firstRow.','.$page->listRows)->select();
        $this->assign("redeemlist",$redeemlist);
        $this->assign("page",$show);

        $this->display(); 
    }



jifen.php-每日签到送积分:

<h3>积分中心(积分:<span id="total"><{$integral}></span>)</h3>					
<div class="sign-box">
     <div class="sign-img fl"><img src="__CN__/img/sign-btn.png" class="img-responsive"/></div>
     <div class="sign-info fl">
	<h2>每日签到送积分</h2>
	<p>积分是由用户购买商品时产生的,一般按一元一分,100元的购物可送100的积分。</p>
     </div>
     <a href="javascript:;" class="sign-btn fr" onclick="tosignin(<{$_SESSION['qtuid']}>);">签 到</a>
     <div class="clear"></div>
</div>

----------------------------------------
<script language="javascript">

       function tosignin(uid){
		var tatol=Number($("#total").text());
		$.post("<{:U('Member/signin')}>", {"uid":uid },function(data){
		      if(data==1){
		         alert("签到成功!");
		         // $("#total").text(tatol+1);
		         window.location.reload();
		       }else if(data==2){
		         alert("今日已经签到!");
		       }else{
		         alert("签到失败!");
		     }
		} );
	}
</script>

jifen.php-积分商品:

							
<div class="user-right">
     <ul class="pro-list exchange-con row">
	<volist name="pro_data" id="vo">
	       <li class="col-md-4 col-xs-6">
		       <div class="exgoods">
				<div class="pro-img"><img src="__CN__/img/pro-img01.jpg"/></div>
				<h5><{$vo.proname}></h5>
				<h6><{$vo.price}>积分可兑换<a href="javascript:;" class="change" onclick="toredeem(<{$vo[id]}>);">兑换</a></h6>
				<!-- <h6><{$vo.price}>积分可兑换<a href="<{:U('Member/redeem',array('uid'=>$_SESSION['qtuid'],'gid'=>$vo[id]))}>" class="change">兑换</a></h6> -->
			</div>
		</li>
	</volist>
     </ul>
     <div class="pager">
	<{$page}>
     </div>
-------------------------------------------------------------------------------------------
<script language="javascript">
	function toredeem(gid){
		$.post("<{:U('Member/redeem')}>", {"gid":gid },function(data){
		        if(data==1){
		        	alert("兑换成功!");
		        	window.location.reload();
		        }else if(data==3){
		        	alert("您的积分不足以兑换该商品!");
		        }else{
		        	alert("兑换失败!");
		        }
		 } );
	}

</script>

jifgoods.php-已兑换商品:

<div class="user-right">
	<h3>已兑换的商品</h3>
	<ul class="pro-list row">
		<volist name="redeemlist" id="vo">
			<li class="col-md-4 col-xs-6">
				<a href="javascript:;">
				<div class="pro-img"><img src="__PUBLIC__/Uploads/Product/<{$vo.prophoto}>"/></div>
				<h5><{$vo.proname}></h5>
				<h6><{$vo.prointo}></h6>
				</a>
			</li>
		</volist>
	</ul>
        <div class="pager">
	<{$page}>
        </div>						
</div>

数据表:

积分兑换商品表

CREATE TABLE IF NOT EXISTS `tp_redeem` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `user_id` int(4) DEFAULT NULL COMMENT '会员id',
  `pro_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '商品id',
  `ProductName` varchar(120) NOT NULL DEFAULT '' COMMENT '商品名称',
  `addtime` varchar(30) DEFAULT NULL COMMENT '添加时间',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='积分兑换商品表' AUTO_INCREMENT=2 ;

产品表

CREATE TABLE IF NOT EXISTS `tp_product` (
  `id` int(4) NOT NULL AUTO_INCREMENT,
  `cid` int(4) DEFAULT NULL COMMENT '分类id',
  `bid` int(11) DEFAULT '0' COMMENT '品牌id',
  `lang` tinyint(1) DEFAULT '0' COMMENT '语言',
  `proname` varchar(255) NOT NULL DEFAULT '' COMMENT '产品名称',
  `price` varchar(30) DEFAULT NULL COMMENT '产品价格',
  `isphoto` tinyint(1) DEFAULT '0' COMMENT '是否有图片',
  `prophoto` varchar(30) NOT NULL DEFAULT '' COMMENT '产品图片',
  `prothumb1` varchar(30) DEFAULT NULL COMMENT '产品缩略图1',
  `prothumb2` varchar(30) DEFAULT NULL COMMENT '产品缩略图2',
  `prointo` text COMMENT '产品简介',
  `procontent` longtext COMMENT '产品详细说明',
  `isshow` tinyint(2) DEFAULT NULL COMMENT '是否显示',
  `isrecom` tinyint(2) DEFAULT NULL COMMENT '是否推荐',
  `orderby` int(11) DEFAULT NULL COMMENT '排序',
  `issj` tinyint(1) DEFAULT '0',
  `sjisshow` tinyint(1) DEFAULT '1',
  `sjprocon` longtext,
  `opti` tinyint(1) DEFAULT '0',
  `yetitle` varchar(50) DEFAULT NULL,
  `keywords` text COMMENT '关键词',
  `descri` text,
  `hits` int(4) DEFAULT '0' COMMENT '点击量',
  `otherpro` varchar(100) DEFAULT NULL COMMENT '其他产品',
  `othernews` varchar(100) DEFAULT NULL COMMENT '其他新闻',
  `otherdown` varchar(100) DEFAULT NULL COMMENT '其他下载',
  `otheranswer` varchar(100) DEFAULT NULL COMMENT '其他回答',
  `is_other_img` tinyint(1) DEFAULT '0' COMMENT '是否有关联图',
  `tag_id` varchar(255) DEFAULT NULL,
  `addtime` varchar(30) DEFAULT NULL COMMENT '添加时间',
  `updatetime` varchar(30) DEFAULT NULL COMMENT '修改时间',
  `pro_spec` text,
  `sketch` text,
  `islink` tinyint(1) DEFAULT '0' COMMENT '是否外链',
  `title_href` varchar(100) DEFAULT NULL COMMENT '链接地址',
  `bewrite` longtext COMMENT '产品描述',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=51 ;

会员表

CREATE TABLE IF NOT EXISTS `tp_member` (
  `id` int(4) NOT NULL AUTO_INCREMENT,
  `roleid` int(4) DEFAULT '0',
  `username` varchar(30) CHARACTER SET gbk NOT NULL,
  `nicname` varchar(30) DEFAULT NULL,
  `password` char(32) CHARACTER SET gbk NOT NULL,
  `email` varchar(32) DEFAULT NULL,
  `tel` varchar(16) DEFAULT NULL,
  `addtime` int(11) DEFAULT NULL,
  `addip` varchar(20) DEFAULT NULL,
  `disable` tinyint(1) unsigned zerofill DEFAULT NULL,
  `updatetime` int(11) DEFAULT NULL,
  `loginnum` int(11) DEFAULT '0',
  `lastlogip` varchar(20) DEFAULT NULL,
  `lastlogtime` varchar(30) DEFAULT NULL,
  `nowlogip` varchar(20) DEFAULT NULL,
  `nowlogtime` varchar(30) DEFAULT NULL,
  `score` varchar(255) NOT NULL COMMENT '积分',
  `signindata` varchar(30) NOT NULL COMMENT '签到时间',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC AUTO_INCREMENT=5 ;


收费下载资源专业版 WordPress插件,经过完美测试运行于wordpress 3.1.x-3.8.x版本,很多做素材和资源分享的网站也许都希望增加付费下载,而国外的插件要么就是商城购物,要么下载不支持支付功能,这款收费下载资源插件能够满足你的需求,wordpress 插件可以解决收费下载资源这一空白,这个插件支持所有投稿者发布资源,并且获得收益,可申请提现,管理员可对提现金额设置收取平台建设费。 管理员的功能: 已经在程序中集成支付宝(担保交易/双功能接口/即时到帐) 设置会员提现手续费比率 设置安全模式(使支付宝担保交易无法充值成功,即时到帐可充值成功) 设置用户推广提成比率 设置货币昵称(例如:Q币) 设置充值比例(例如:1元=10Q币) 查询整个平台全部消费记录 查询整个平台全部充值记录 查看与处理取现申请列表 查看全部收益与推广 推广用户消费获得提成 站内转账 商品列表 后台给用户充值与扣费 查询用户余额、充值记录、消费记录 发布收费下载资源 发布收费查看内容 在消费清单中下载资源 投稿者的功能: 发布收费下载资源 发布收费查看内容 查看消费记录 推广用户消费获得提成 申请支付宝取现 查看自己的收益与推广 查看充值记录 站内转账 在线充值 在消费清单中下载资源 订阅者的功能: 查看消费记录 在线充值 站内转账 在消费清单中下载资源 推广用户消费获得提成 申请支付宝取现 查看自己的收益与推广 其他功能: 下载路径加密功能 投稿者7天内只能申请1次提现,防止反复提现为站长带来麻烦 VIP会员(VIP专享、VIP半价、VIP免费) 如果下载文件升级了,已付费会员可以继续免费下载 优化注册页面 colorbox灯箱弹窗特效 前端个人中心(可直接充值、查看消费等) 收费下载资源 WordPress插件演示》 www.thefox.cn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值