PHP如何使用复述,位图的位图实现签到功能

  介绍

这篇文章给大家分享的是有关PHP如何使用复述,位图的位图实现签到功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

<强>一、需求

记录用户签到,查询用户签到

<强>二、技术方案

1,使用mysql (max_time字段为连续签到天数)

 PHP如何使用复述,位图的位图实现签到功能”>,</p> <p>思路:</p> <p>(1)用户签到,插入一条记录,根据create_time查询昨日是否签到,有签到则max_time在原基础+ 1,否则,max_time=0 </p> <p>(2)检测签到,根据user_id, create_time查询记录是否存在,不存在则表示未签到</p> <p> 2,使用复述,位图功能</p> <p>思路:</p> <p>(1)每个用户每个月单独一条复述,记录,如00101010101010,从左往右代表01-31天(每月有几天,就到几天)<br/>(2)每月8号凌晨,统一将复述的记录,搬至mysql,记录如图<br/> </p> <p> <img src= public  static  function  userSignIn (userId美元)   {才能   ,,,time 美元;=,();   ,,,today 美元;=,日期(& # 39;d # 39;,,美元时间);   ,,,year 美元;=,日期(& # 39;y # 39;,,美元时间);   ,,,month 美元;=,日期(& # 39;猴# 39;,,美元时间);   ,,,signModel 美元;=,new 标志(userId,美元一年,月美元);   ,,,//1,查询用户今日签到信息   ,,,todaySign 美元;=,美元signModel→getSignLog(今天美元);   ,,,if  (todaySign美元),{   ,,,,,return 自我:jsonArr(1, & # 39;您已经签到过了& # 39;,,[]);   ,,,}   ,,,try  {   ,,,,,Db: startTrans ();   ,,,,,美元signModel→setSignLog(今天美元);   ,,,,,//4,赠送积分   ,,,,,if  (self:: SING_IN_SCORE 祝辞,0),{   ,,,,,,,美元dataScore [& # 39; order_id& # 39;],=,美元userId # 39;公司_ # 39;今天美元;   ,,,,,,,美元dataScore[& # 39;类型# 39;],=,2;//2,签到   ,,,,,,,美元dataScore[& # 39;评论# 39;],=,& # 39;签到获得积分& # 39;;   ,,,,,,,财务:updateUserScore(金融::OPT_ADD, userId美元,self:: SING_IN_SCORE,, dataScore美元);   ,,,,,}   ,,,,,code 美元;=,& # 39;0 & # 39;;   ,,,,,msg 美元;=,& # 39;签到成功& # 39;;   ,,,,,score 美元;=,self:: SING_IN_SCORE;   ,,,,,Db: commit ();   ,,,},catch  (\ Exception  $ e), {   ,,,,,Db:回滚();   ,,,,,code 美元;=,& # 39;2 & # 39;;   ,,,,,msg 美元;=,& # 39;签到失败& # 39;;   ,,,,,score 美元;=,0;   ,,,}   ,,,return 自我:jsonArr(代码,美元,味精、美元,[& # 39;分数# 39;,=祝辞,$得分]);   以前,,}

·复述,基类

& lt; php ?   namespace 应用\常见\复述\ db1;/* *   ,*复述,操作类   ,*/class  RedisAbstract   {   ,/* *   ,,*,连接的库   ,,*,@var  int   ,,*/protected 才能;_db 美元;=,1;//数据库名   protected 才能;_tableName 美元;=,& # 39;& # 39;;//表名   static 才能;redis 美元;=,空;   public 才能;function  __construct ()   {才能   ,,,return  $ this→getRedis ();   ,,}   public 才能;function  _calcKey ($ id)   {才能   ,,,return  $ this→_tableName 只$ id;   ,,}   ,/* *   ,,*,查找钥匙   ,,*,@param 关键美元   ,,*,@return 数组   ,,*,@throws  \例外   ,,*,@author  wenzhen-chen   ,,*/public 才能;function 键(键)   {才能   ,,,return  $ this→getRedis()→键($ this→_calcKey(键)美元);   ,,}   ,/* *   ,,*,获取是否开启缓存的设置参数   ,,*   ,,*,@return 布尔   ,,*/public 才能;function  _getEnable ()   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

PHP如何使用复述,位图的位图实现签到功能