基于TP的每日签到代码

自己写的基于TP的每日签到代码。需要的带走,大牛勿喷

// 每日签到
        public function dailySign(){
            // 获取用户签到信息
            $merArr = M('merchant') -> where("MerID = '$this->UserId'") -> find();
            // 判断是否为注册后第一次签到
            if($merArr['totalTime'] == 0 && $merArr['totalnum'] == 0){
                // 获取签到设置
                $signArr = M('sign') -> where("num = 1") -> find();
                $Yunbi = $signArr['yun'];
                $score['Mertotal'] = array('exp',"Mertotal + $Yunbi");
                $score['totalnum'] = 1;
                $score['totalTime'] = time();
                $result = M('merchant') -> where("MerID = '$this->UserId'") -> save($score);
                if($result > 0){
                    echo "签到成功";
                }else{
                    echo "签到失败";
                }
            }else{
                // 获取登录用户签到信息
                $totalTime = $merArr['totalTime']; // 签到时间
                $totalnum = $merArr['totalnum']; // 签到次数
                $signTime = date('y-m-d',$totalTime); // 格式化签到时间
                // 判断今天是否已经签到
                if($signTime == date('y-m-d',time())){
                    echo "已签到";
                    exit;
                }else{
                    // 判断是否错过连续签到时间
                    if(time() - $totalTime > 60*60*24){
                        // 获取签到设置
                        $signArr = M('sign') -> where("num = 1") -> find();
                        $Yunbi = $signArr['yun'];
                        $score['Mertotal'] = array('exp',"Mertotal + $Yunbi");
                        $score['totalnum'] = 1;
                        $score['totalTime'] = time();
                        $result = M('merchant') -> where("MerID = '$this->UserId'") -> save($score);
                        if($result > 0){
                            echo "签到成功";
                        }else{
                            echo "签到失败";
                        }
                    }else{
                        // 获取签到设置
                        $signArr = M('sign') -> where("num = $totalnum + 1") -> find();
                        if($signArr != null){
                            $Yunbi = $signArr['yun'];
                        }else{
                            $maxYun = M('sign') -> Max('num');
                            $signArr = M('sign') -> where("num = $maxYun") -> find();
                            $Yunbi = $signArr['yun'];
                        }
                        $score['Mertotal'] = array('exp',"Mertotal + $Yunbi");
                        $score['totalnum'] = $totalnum + 1;
                        $score['totalTime'] = time();
                        $result = M('merchant') -> where("MerID = '$this->UserId'") -> save($score);
                        if($result > 0){
                            echo "签到成功";
                        }else{
                            echo "签到失败";
                        }
                    }    
                }
            }
        }
--
-- 表的结构 `web_sign`
--
CREATE TABLE IF NOT EXISTS `web_sign` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `num` tinyint(4) NOT NULL,
  `yun` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COMMENT='签到表' AUTO_INCREMENT=3 ;
--
-- 转存表中的数据 `web_sign`
--
INSERT INTO `web_sign` (`id`, `num`, `yun`) VALUES
(1, 1, 20),
(2, 2, 40);

最后修改:5年前 2014-02-01

© 著作权归作者所有

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨建荣的学习笔记

使用sql语句分析双色球(85天)

这个题目看似有点无厘头,老写技术博客,也来干点“正事",用sql语句分析一下近十年来的双色球情况,不过我肯定算不出来开奖结果,纯属个人娱乐, 个人觉得概率让一切...

35260
来自专栏数据小魔方

左手用R右手Python系列——七周数据分析师学习笔记R语言、Python版

上一篇我重点写了秦路老师在七周数据分析师系列课程中MySQL模块的实战作业SQL语法,对比了自己的冗余思路与老师的最佳思路。 MySQL入门学习笔记——七周数据...

53760
来自专栏杨建荣的学习笔记

一条"简单"的sql语句和小兔子买面包的故事 (r3笔记第25天)

有时候开发人员写sql语句的时候,接触的性能问题越多,可能对sql语句的结构,性能考虑会多一些,这也是一件好事,不过如果考虑不当,本来原本想做的的一些优化却使得...

28050
来自专栏杨建荣的学习笔记

MySQL运维的一款利器sys schema

MySQL运维中有很多的工具,就好比你进了一个杂货铺,各种运维中的小技巧几乎都有一些小工具, 走一圈发现真是琳琅满目,可见MySQL充分享受了开源社区的红利。 ...

47080
来自专栏java架构学习交流

java web轻量级开发面试教程读书笔记:建索引时我们需要权衡的因素

场景一,数据表规模不大,就几千行,即使不建索引,查询语句的返回时间也不长,这时建索引的意义就不大。当然,若就几千行,索引所占的空间也不多,所以这种情况下,顶多属...

219100
来自专栏码神联盟

碎片化 | 第四阶段-50-hibernate之Criteria和NavtiveSQL查询操作-视频

如清晰度低,可转PC网页观看高清版本: http://v.qq.com/x/page/i0568gnxikp.html ---- ---- 版权声明:本视频、...

35460
来自专栏杨建荣的学习笔记

一条insert语句导致的性能问题分析(一)(r8笔记第40天)

今天早上开发找我看一个问题,说他们通过程序连接去查一个表的数据的时候,只查到了8条记录,这个情况着实比较反常,因为从业务上的数据情况来说,不可能只有8条。 但是...

32750
来自专栏开发与安全

腾讯2014年实习生招聘广州站offer经历(TEG-后台开发)

     过去的一年学的都是linux 系统编程和网络编程方面的东西,比较熟悉的语言也是c/c++,python仅限写一些测试客户端。所以这学期开始投的实习职...

23500
来自专栏杨建荣的学习笔记

相差数十倍的SQL性能分析(r11笔记第98天)

今天处理开发同学提交的一个数据查询需求,看起来是一个很常规的SQL,但是有一点不同的是,他们提供了两份文件,一份是一个id列表,大概有3000多个id值,...

35480
来自专栏PingCAP的专栏

TiDB 助力客如云餐饮 SaaS 服务

客如云成立于 2012 年,是全球领先、 国内最大的 SaaS 系统公司。 目前面向餐饮、 零售等服务业商家, 提供软硬一体的新一代智能化前台、收银等 SaaS...

24340

扫码关注云+社区

领取腾讯云代金券