php积分领取规则,用PHP实现会员签到分享或者领积分
/**
* 用户中心
* @param
*/ public function index(){
$pre = C('DB_PREFIX');
// 日历列表 $monthSign = $this->getMonthSign();
$dayList = $this->showDays($monthSign);
// 今天签到 $data = $this->todayData();
if($data['is_sign'] == 1){
$this->assign('isSign',true);
}
$this->display();
}
/**
* 执行当天签到
* @return json 签到成功返回 {status:1,info:'已签到'}
*/ public function sign(){
$todayData = $this->todayData();
if($todayData['is_sign'] == 1){
$this->successMsg('已签到');
}else{
$data = $this->getInsertData($this->uid);
// 无今天数据 if($todayData == NULL){
$data['uid'] = $this->uid;
$data['atime'] = time();
$id = M('members_sign')->add($data);
}else{
$save = M('members_sign')->where("id = {$todayData['id']}")->save($data);
}
if($id or $save){
$score = $this->getTodayScores($data['days']);
// 为该用户添加积分 addScore($this->uid,$score);
$this->successMsg('已签到',array('score' => $score,'days'=>$data['days']));
}else{
$this->errorMsg('签到失败,请刷新后重试!');
}
}
}
/**
* 返回每次签到要插入的数据
*
* @param int $uid 用户id
* @return array(
* 'days' => '天数',
* 'is_sign' => '是否签到,用1表示已经签到',
* 'stime' => '签到时间',
* );
*/ protected function getInsertData($uid){
// 昨天的连续签到天数 $start_time = strtotime(date('Y-m-d 0:0:0',time()-86400))-1;
$end_time = strtotime(date('Y-m-d 23:59:59',time()-86400))+1;
$days = M('members_sign')->where("uid = $uid and atime > $start_time and atime getField('days');
if($days){
$days++;
if($days > 30){
$days = 1;
}
}else{
$days = 1;
}
return array(
'days' => $days,
'is_sign' => 1,
'stime' => time()
);
}
/**
* 用户当天签到的数据
* @return array 签到信息 is_sign,stime 等
*/ protected function todayData(){
$time = time();
$start_stime = strtotime(date('Y-m-d 0:0:0',$time))-1;
$end_stime = strtotime(date('Y-m-d 23:59:59',$time))+1;
return M('members_sign')->field('atime',true)->where("uid = {$this->uid} and atime > $start_stime and atime find();
}
/**
* 积分规则,返回连续签到的天数对应的积分
*
* @param int $days 当天应该得的分数
* @return int 积分
*/ protected function getTodayScores($days){
if($days == 30){
return 50;
}else if($days > 19){
return 8;
}else if($days > 9){
return 5;
}else{
return 3;
}
}
/**
* 显示签到列表
*
* @param array $signDays 某月签到的日期 array(1,2,3,4,5,12,13)
* @param int $year 可选,年份
* @param int $month 可选,月份
* @return string 日期列表
1....
*/ protected function showDays($signDays,$year,$month){
$time = time();
$year = $year ? $year : date('Y',$time);
$month = $month ? $month : date('m',$time);
$daysTotal = date('t', mktime(0, 0, 0, $month, 1, $year));
$now = date('Y-m-d',$time);
$str = '';
for ($j = 1; $j <= $daysTotal; $j++) {
$i++;
$someDay = date('Y-m-d',strtotime("$year-$month-$j"));
// 小于今天的日期样式 if ($someDay <= $now){
// 当天日期样式 tdc = todayColor if($someDay == $now){
// 当天签到过的 if(in_array($j,$signDays)){
$str .= '
'.$j.'';
}else{
$str .= '
'.$j.'';
}
}else{
// 签到过的日期样式 current bfc = beforeColor , fw = font-weight if(in_array($j,$signDays)){
$str .= '
'.$j.'';
}else{
$str .= '
'.$j.'';
}
}
}else{
$str .= '
'.$j.'';
}
}
return $str;
}
/**
* 获取当月签到的天数,与 $this->showDays() 配合使用
* @return 当月签到日期 array(1,2,3,4,5,12,13)
*/ protected function getMonthSign(){
$time = time();
$year = date('Y',$time);
$month = date('m',$time);
$day = date("t",strtotime("$year-$month"));
$start_stime = strtotime("$year-$month-1 0:0:0")-1;
$end_stime = strtotime("$year-$month-$day 23:59:59")+1;
$list = M('members_sign')->where("uid = {$this->uid} and stime > $start_stime and stime order('stime asc')->getField('stime',true);
foreach ($list as $key => $value){
$list[$key] = date('j',$value);
}
return $list;
}
}
php积分领取规则,用PHP实现会员签到分享或者领积分相关推荐
- 微信考勤签到 php,【投稿】微信签到打卡领积分源码,每日积分签到
PHPwork模块化扩展开发,轻量mvc,原生php和常用封装,提供PHPwork开发文档,方便二次开发. 小白请勿拍,我们卖的只是源码,只能保证源码使用无错,无技术支持. 程序提供了自动安装,关键配 ...
- php积分领取规则,积分规则
积分规则 1.积分获取 a) 积分专属邮乐,仅限邮乐网内使用; b) 积分可以累积,2年内有效; c) 买家在邮乐网消费购物可以获得积分,积分返点比例为:除3C产品外的所有商品均以2元:1积分计 ...
- java开发积分加钱换购_【案例】加油站积分兑换规则方案,加油站积分换购礼品表 - 会员管理系统 |多啦啦...
为了让加油站做好会员积分营销活动,小编整理了一篇专业的积分规则以及积分兑换方案. 积分兑换方案在文后,请耐心看完. 微信公众号积分兑换文章内容正文部分参考: 尊敬的会员客户: 为了感谢大家对XX加油站 ...
- 多点积分又改规则了_【多点乘车“小芝士”】“铁路畅行”常旅客会员积分兑换规则及会员等级相关规定...
原标题:[多点乘车"小芝士"]"铁路畅行"常旅客会员积分兑换规则及会员等级相关规定 北京 BEIJING 全国 QUANGUO "铁路畅行" ...
- 如何设计一个积分领取系统
积分作为一种营销手段,被广泛运用于线上/线下的产品中,以此来增加用户对于产品的粘性.比如天猫积分可以用来兑换商品,京豆可以在下单折扣等,如下图所示. 如今,随着获客成本的增加,如何减少用户的流失,变成 ...
- 转载CSDN积分获取规则
下载积分攻略: 个人设置里进行手机绑定CSDN账户 奖励50分 (右上角设置-账户安全-手机绑定) 完成任务送若干分积分 http://task.csdn.net/ 上传有效资源获取积分(上传非法,广 ...
- 商城小程序、实例原型设计、电商app、积分商城、领券中心、会员中心、每日签到、小程序电商、优惠券、移动端电商、Axure原型、rp原型、产品原型、积分、会员卡
商城小程序.实例原型设计.电商app.积分商城.领券中心.会员中心.每日签到.小程序电商.优惠券.移动端电商.Axure原型.rp原型.产品原型.积分.会员卡 Axure演示及下载地址: Untitl ...
- web电商系统、电商平台WEB端交互原型模板、用户中心、会员中心、优惠券、积分、互动社区、运营推广、内容推荐、商品展示、订单流程、订单管理、售后及服务、Axure原型、rp原型、电商原型、商城系统原型
作品介绍:web电商系统.电商平台WEB端交互原型模板.用户中心.会员中心.优惠券.积分.互动社区.运营推广.内容推荐.商品展示.订单流程.订单管理.售后及服务等完整的电商体系功能架构和业务流程 Ax ...
- Java实现积分过期保证时间_商城会员积分过期的实现方案
背景:积分项目,每次添加的积分都有一个有效期,有效期为一年,如2017-01-02添加了一条积分记录,到2018-01-02这条记录应该是过期的.当前项目设计有两张表:积分明细表(存放积分添加.使用明 ...
最新文章
- reactor与proactor模式
- 编程中python怎么读-对Python新手编程过程中如何规避一些常见问题的建议
- Docker的镜像使用
- 程序组件通信方案集锦
- Spark学习之概念了解
- Indy10收发Hotmail邮件
- 大白菜linux系统安装步骤,GRUB简单入门教程
- 微软power bi_Microsoft Power Platform快速概述
- docker容器详解(入门必看)(一)
- 那些好用的firefox扩展插件分享
- 大数据算法_大数据挖掘十大经典算法
- 速达服务器应用程序错误,速达软件错误集锦及解决方法
- Redis教程--基于docker搭建redis文档服务
- 人脸关键点检测 代码 matlab,从传统方法到深度学习,人脸关键点检测方法综述...
- 【PhotoScan精品教程】任务四:PhotoScan做空三+CC生成正射、三维建模综合案例
- LabVIEW控制Arduino采集DHT11温湿度数值(进阶篇—4)
- SMT贴片元件拆卸的妙招分享
- 【AI面试】L1 loss、L2 loss和Smooth L1 Loss,L1正则化和L2正则化
- 北醒激光雷达TFmini测试
- 微信小程序_图片连拍_闪光灯_手电筒_录制
热门文章
- 如何在自己的网站上添加HTML悬浮音乐播放器?
- Android MediaRecorder自定义分辨率
- kali linux桌面分辨率,kali自定义分辨率(1920*1080)
- wsock32 linux,在linux下安装并使用websocket
- 开启Mysql主从复制
- 解析网页后门与网页挂马原理
- 计算机Python项目(毕设课设)之含文档+PPT+源码等]精品基于Python实现的大学校园短视频社交软件系统-微信小程序
- 基于百度云的 AI 接口调用
- Thinkphp3.2 查询物流接口对接(快递鸟为例)
- A-Level经济真题每期一练(14)