首页 > 如何改这段thinkphp签到代码

如何改这段thinkphp签到代码

        $residueHour=24+24-date('H',$lastSignDay);
        $formatHour=strtotime(date('Y-m-d H',$lastSignDay).':00:00');
        $lastSignDate=strtotime("+{$residueHour}hour",$formatHour);

public function sign(){
    //每日签到       
    $this->check_login();
    $data=array(
            'userId'=>$this->memberID,
            'sc_score'=>1,
            'sc_detail'=>'签到+1',
            'sc_type'=>1
    );
    
    $dao=M('sign');//实例化sign对象
    $current=date('Y-m-d H:i:s',time());
    $hasSign=$dao->where("userId={$this->memberID}")->find();
    $count=$hasSign['si_count'];
    if($hasSign){
        $lastSignDay=strtotime("{$hasSign['si_time']}");
        $lastSign=date('Y-m-d',$lastSignDay);
        $today=date('Y-m-d',time());
         if($lastSign==$today){
            echo "今天已签到,您已连续签到 <font color='green'> {$count} </font> 天,连续签到5天每天+5元代金券!";
            exit();
        } 
            
        $residueHour=24+24-date('H',$lastSignDay); //有效的签到时间  (签到当天剩余的小时+1天的时间)
        $formatHour=strtotime(date('Y-m-d H',$lastSignDay).':00:00');//签到当天 2014-12-07 18:00:00
        $lastSignDate=strtotime("+{$residueHour}hour",$formatHour);//在2014-12-07 18:00:00 基础上+ 有效的签到时间
        if(time()>$lastSignDate){ //当前时间 >  上一次签到时间
            $count=1;  
        }else{
            $count=$count+1;
        }
        $sign=$dao->where("userId={$this->memberID}")->save(array('si_time'=>$current,'si_count'=>$count)); //签到表
    }else{
        $sign=$dao->add(array('userId'=>$this->memberID,'si_count'=>1)); //签到表
        $count=1;
    }
    if($sign){
        //第一天签到+1 第二天签到+2 第三天签到+3 第四天签到+4 第五天+5 连续5天每天+5
        switch ($count){
            case 1:
              $sc_score=1;
              break;
            case 2:
              $sc_score=2;
              break;
            case 3:
              $sc_score=3;
              break;
            case 4:
              $sc_score=4;
              break;
            default:
              $sc_score=5;
            }
            $dao->where("userId={$this->memberID}")->setInc('coin',$sc_score);  //签到金额累加
            $coin=$dao->where("userId={$this->memberID}")->field('coin')->find();
            if($coin['coin']>=20){
                $dao->where("userId={$this->memberID}")->setDec('coin',20);//如果满20将生成一张20的代金券
                $this->insertCoupon('会员签到代金券',20,$this->memberID);
            }
            $data=array(
            'userId'=>$this->memberID,    
            'sc_score'=>$sc_score,    
            'sc_detail'=>'签到+'.$sc_score,    
            'sc_type'=>1    
            );
        
        M('score2')->add($data); //积分表
                    
        if($count>0){
            echo "<font color='green'>您今天已成功签到,成功领取{$sc_score}元代金券,其中连续签到 <font color='red'> {$count} </font> 天</font>";
        }else{
            echo "<font color='green'>签到成功</font>";
        }
    
    }else{
        echo '签到失败,请稍后重试!';
    }
    
}
【热门文章】
【热门文章】