自用thinkphp簽到送積分方法,不含前臺(tái)展示,只判斷了今日有沒有簽到,如需要可自行添加
1、先附上表格結(jié)構(gòu),自用的]/**<br>
?*?tableName?=?前綴_user_sing_in<br>
?*?id<br>
?*?uid<br>
?*?username<br>
?*?create_time?int?10?簽至?xí)r間<br>
?*?sign_in_year??簽到,年<br>
?*?sign_in_month?簽到,月<br>
?*?sign_in_day??簽到,日<br>
?*?get_integral?簽到獲得積分?jǐn)?shù)<br>
?*?sign_in_con_days??連續(xù)簽到天數(shù)?default=1<br>
?*/
2、簽到實(shí)現(xiàn)方法及類別<?php <br />
/**<br>
?*?Created?by?PhpStorm.<br>
?*?Author:?醉丶春風(fēng)<br>
?*?Description:?本類必須登錄,使用者點(diǎn)數(shù)兌換,簽至<br>
?*?Date:?2016/10/19<br>
?*?Time:?16:02<br>
?*/<br>
namespace?HomeController;<br>
//use?ThinkController;<br>
class?IntegralController?extends?HomeController<br>
{<br>
???private?$uid?=?null;<br>
???private?$where?=?array();<br>
???/**<br>
????*?構(gòu)造方法<br>
????*?自動(dòng)載入uid,初始化uid條件<br>
????*/<br>
???public?function?_initialize()<br>
???{<br>
??????$this?->?uid?=?$this?->?check_login();<br>
??????$this?->?where['uid']?=?$this->uid;<br>
???}<br>
?<br>
???/**<br>
????*?簽到取得積分方式<br>
????*/<br>
???public?function?sign_in()<br>
???{<br>
??????$get_integral?=?2;?//簽至贈(zèng)送點(diǎn)數(shù)<br>
??????$get_added_integral?=?5;?//連續(xù)簽至N天額外贈(zèng)送點(diǎn)數(shù)<br>
??????$continuous_day?=?7;?//連續(xù)簽至額外點(diǎn)數(shù)<br>
//************************************************ **************<br>
??????$start_time?=?strtotime(date('Y-m-d'));//今天凌晨的時(shí)間戳<br>
??????$year?=?date("Y");?//今天-年<br>
??????$month?=?date("m");?//今天-月<br>
??????$day?=?date("d");?//今天-日<br>
//************************************************ **************<br>
??????$yesterday?=?strtotime('-1?day');?//昨天的時(shí)間戳基數(shù)<br>
??????$yesterday_year?=?date('Y',$yesterday);?//昨天-年<br>
??????$yesterday_month?=?date('m',$yesterday);?//昨天-月<br>
??????$yesterday_day?=?date('d',$yesterday);?//昨天-日<br>
//************************************************ **************<br>
??????//先驗(yàn)證今天有沒有簽到過<br>
??????$Model?=?M('user_sign_in');<br>
??????$record_count?=?$Model?->?where(array('uid'=>$this->uid,'create_time'=>array('EGT',$start_time)))?->?count(time'=>array('EGT',$start_time)))?->?count();
??????if($record_count)<br>
?????????$this?->?error('今日簽至');<br>
//************************************************ **************<br>
??????//準(zhǔn)備插入資料<br>
??????$data?=?array(<br>
?????????'uid'?=>?$this?->?uid,<br>
?????????'sign_in_year'?=>?$year,?//年<br>
?????????'sign_in_month'?=>?$month,//月<br>
?????????'sign_in_day'?=>?$day,//日<br>?????????'username'?=>?$_SESSION['userInfo']['username'],<br>
?????????'get_integral'?=>?$get_integral,?//預(yù)設(shè)簽至取得點(diǎn)數(shù)<br>
?????????'create_time'?=>?time(),<br>
??????);<br>
??????$msg?=?"簽到成功,獲得{$get_integral}點(diǎn)數(shù)";<br>
??????//**************************************************** **********<br>
??????//查詢昨天的簽到紀(jì)錄<br>
??????$where?=?array(<br>
?????????'uid'?=>?$this?->?uid,<br>
?????????'sign_in_year'?=>?$yesterday_year,<br>
?????????'sign_in_month'?=>?$yesterday_month,<br>
?????????'sign_in_day'?=>?$yesterday_day,<br>
??????);<br>
??????$yesterday_record?=?$Model?->?where($where)?->?find();<br>
??????//有,設(shè)定連續(xù)簽到天數(shù)加1,繼續(xù)判斷連續(xù)簽到有沒有達(dá)標(biāo)<br>
??????if($yesterday_record){<br>
?????????//設(shè)定連續(xù)簽至天數(shù)加1<br>
?????????$data['sign_in_con_days']?=?$yesterday_record['sign_in_con_days']?+1;<br>
?????????if($yesterday_record['sign_in_con_days']?>=?$continuous_day){<br>
????????????//已?經(jīng)達(dá)到連續(xù)簽至要求,且加上額外點(diǎn)數(shù)<br>
????????????$data['get_integral']?=?$get_integral?+?$get_added_integral;<br>
????????????$msg?=?"簽至成功,取得{$get_integral}點(diǎn)數(shù),連續(xù)簽至{$continuous_day}天額外取得{$get_added_integral}點(diǎn)數(shù)";<br>
?????????}<br>
??????}<br>
//************************************************ **************<br>
??????//昨天未簽到,不進(jìn)行邏輯處理,執(zhí)行簽到送積分,預(yù)設(shè)連續(xù)簽到天數(shù)為1<br>
??????if($Model?->?add($data)){<br>
?????????//使用者積分增加<br>
?????????M('user')?->?where($this->where)?->?setInc('integral',$data['get_integral']);<br>
?????????$this?->?success($msg,U('Index/index'),3);<br>
??????}<br>
??????$this?->?error('簽至失敗');<br>
???}<br>
?<br>
}
自己使用的,呼叫的時(shí)候直接呼叫 sign_in()方法即可
驗(yàn)證今日是否已簽到方法/**<br>
?*?登入導(dǎo)航<br>
?*?驗(yàn)證今日是否已簽到<br>
?*/<br>
public?function?login_nav(){<br>
???$start_time?=?strtotime(date('Y-m-d'));//今天凌晨的時(shí)間戳記<br>
???$is_sign_in?=?0;//初始化未簽至<br>
???//先驗(yàn)證今天有沒有簽到過<br>
???$Model?=?M('user_sign_in');<br>
???//簽到紀(jì)錄<br>
$sign_in_record?=?$Model?->?where(array('uid'=>$_SESSION['userInfo']['id'],'create_time'=>array('EGT',$start_time)))?->?find() ;<br>
???if($sign_in_record){<br>
??????$is_sign_in?=?1;<br>
??????//依需求傳入?$sign_in_record?或連續(xù)簽至天數(shù)<br>
??????$this?->?assign('sign_in_con_days',$sign_in_record['sign_in_con_days']);<br>???}<br>
???$this?->?assign('is_sign_in',$is_sign_in);<br>
???//自用<br>
???$this->display('Widget/login_nav');<br>
}
因?yàn)槲业膃rror 和success 方法中增加了exit; 所以上述程式碼中直接$this -> error('錯(cuò)誤');下面可不用終止程式碼,大家在用的時(shí)候要考慮到自己的程式碼是否增加exit或die;
也寫在我的部落格裡面了
http://www.xstnet.com/article-79.html
http://www.xstnet.com/article-79.html
自己用沒問題

熱AI工具

Undress AI Tool
免費(fèi)脫衣圖片

Undresser.AI Undress
人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強(qiáng)大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6
視覺化網(wǎng)頁(yè)開發(fā)工具

SublimeText3 Mac版
神級(jí)程式碼編輯軟體(SublimeText3)

《Go語(yǔ)言程式設(shè)計(jì)實(shí)例:Web開發(fā)中的程式碼範(fàn)例》隨著網(wǎng)路的快速發(fā)展,Web開發(fā)已成為各行業(yè)中不可或缺的一部分。作為一門功能強(qiáng)大且效能優(yōu)越的程式語(yǔ)言,Go語(yǔ)言在Web開發(fā)中越來越受到開發(fā)者們的青睞。本文將透過具體的程式碼範(fàn)例,介紹如何利用Go語(yǔ)言進(jìn)行Web開發(fā),讓讀者更能理解並運(yùn)用Go語(yǔ)言來建立自己的Web應(yīng)用。 1.簡(jiǎn)單的HTTP伺服器首先,讓我們從一個(gè)

華為雲(yún)端邊緣運(yùn)算對(duì)接指南:Java程式碼範(fàn)例快速實(shí)現(xiàn)介面隨著物聯(lián)網(wǎng)技術(shù)的快速發(fā)展和邊緣運(yùn)算的興起,越來越多的企業(yè)開始關(guān)注邊緣運(yùn)算的應(yīng)用。華為雲(yún)端提供了邊緣運(yùn)算服務(wù),為企業(yè)提供了高可靠的運(yùn)算資源和便利的開發(fā)環(huán)境,使得邊緣運(yùn)算應(yīng)用更容易實(shí)現(xiàn)。本文將介紹如何透過Java程式碼快速實(shí)現(xiàn)華為雲(yún)端邊緣運(yùn)算的介面。首先,我們需要準(zhǔn)備好開發(fā)環(huán)境。確保你已經(jīng)安裝了Java開發(fā)工具包(

了解Python程式設(shè)計(jì)的入門程式碼範(fàn)例Python是一種簡(jiǎn)單易學(xué),功能強(qiáng)大的程式語(yǔ)言。對(duì)於初學(xué)者來說,了解Python程式設(shè)計(jì)的入門級(jí)程式碼範(fàn)例是非常重要的。本文將為您提供一些具體的程式碼範(fàn)例,幫助您快速入門。列印HelloWorldprint("HelloWorld")這是Python中最簡(jiǎn)單的程式碼範(fàn)例。 print()函數(shù)用於將指定的內(nèi)容輸出

Java冒泡排序最簡(jiǎn)單的程式碼範(fàn)例冒泡排序是一種常見的排序演算法,它的基本想法是透過相鄰元素的比較和交換來將待排序序列逐步調(diào)整為有序序列。以下是一個(gè)簡(jiǎn)單的Java程式碼範(fàn)例,示範(fàn)如何實(shí)作冒泡排序:publicclassBubbleSort{publicstaticvoidbubbleSort(int[]arr){int

如何使用PHP編寫庫(kù)存管理系統(tǒng)中的庫(kù)存分倉(cāng)管理功能碼庫(kù)存管理是許多企業(yè)中不可或缺的一部分。對(duì)於擁有多個(gè)倉(cāng)庫(kù)的企業(yè)來說,庫(kù)存分倉(cāng)管理功能尤其重要。透過合理管理和追蹤庫(kù)存,企業(yè)可以實(shí)現(xiàn)不同倉(cāng)庫(kù)之間的庫(kù)存調(diào)撥,優(yōu)化營(yíng)運(yùn)成本,改善協(xié)同效率。本文將介紹如何使用PHP編寫庫(kù)存分倉(cāng)管理功能的程式碼,並為您提供相關(guān)的程式碼範(fàn)例。一、建立資料庫(kù)在開始編寫庫(kù)存分倉(cāng)管理功能的程式碼之

PHP變數(shù)儲(chǔ)存程式運(yùn)行期間的值,對(duì)於建立動(dòng)態(tài)且互動(dòng)的WEB應(yīng)用程式至關(guān)重要。本文將深入探討php變量,並透過10個(gè)真實(shí)的範(fàn)例展示它們的實(shí)際應(yīng)用。 1.儲(chǔ)存使用者輸入$username=$_POST["username"];$passWord=$_POST["password"];此範(fàn)例從表單提交中提取使用者名稱和密碼,並將其儲(chǔ)存在變數(shù)中以供進(jìn)一步處理。 2.設(shè)定配置值$database_host="localhost";$database_username="username";$database_pa

Java選擇排序法程式碼編寫指南及範(fàn)例選擇排序是一種簡(jiǎn)單直觀的排序演算法,其想法是每次從未排序的元素中選擇最?。ɑ蜃畲螅┑脑剡M(jìn)行交換,直到所有元素排序完成。本文將提供選擇排序的程式碼編寫指南,並附上具體的Java範(fàn)例程式碼。演算法原理選擇排序的基本原理是將待排序數(shù)組分為已排序和未排序兩部分,每次從未排序部分選擇最?。ɑ蜃畲螅┑脑?,將其放到已排序部分的末尾。重複上述

標(biāo)題:從入門到精通:Go語(yǔ)言中常用資料結(jié)構(gòu)的程式碼實(shí)作資料結(jié)構(gòu)在程式設(shè)計(jì)中起著至關(guān)重要的作用,它是程式設(shè)計(jì)的基礎(chǔ)。在Go語(yǔ)言中,有許多常用的資料結(jié)構(gòu),掌握這些資料結(jié)構(gòu)的實(shí)作方式對(duì)於成為優(yōu)秀的程式設(shè)計(jì)師至關(guān)重要。本文將介紹Go語(yǔ)言中常用的資料結(jié)構(gòu),並給出對(duì)應(yīng)的程式碼範(fàn)例,幫助讀者從入門到精通這些資料結(jié)構(gòu)。 1.數(shù)組(Array)數(shù)組是一種基本的資料結(jié)構(gòu),是一組相同類型
