tp 5は毎日連続して署名することを実現する

15724 ワード

考え方:
  • 現在時刻を取得する、現在時刻に基づいて前日時刻
  • を取得する.
  • 前日にカードを打ったかどうかをサイン表で判断する
  • 前日の表に情報が見つかった場合、毎日連続してカードを打つ.情報が見つからない場合は、チェックアウトまたは初日のカード
  • である可能性があります.
  • トランザクション更新に必要なテーブル
  • を使用
    使用する表:1.署名表:ユーザーid署名時間ポイント獲得2.ユーザー表:連続署名日数総ポイント
    コード直接
               
        //        
        public static function havedata($array)
        {
            if (isset($array) && !empty($array)) {
                return true;
            } else {
                return false;
            }
        }
    
        //             
        public static function getLastTime($day,$type="before"){
            $data = array();
            if($type == "before"){
                $str = date("Y-m-d",strtotime("-{$day} day"))." 0:0:0";
                $data["start"] = strtotime($str);
                $str = date("Y-m-d",strtotime("-{$day} day"))." 24:00:00";
                $data["end"] = strtotime($str);
            }else{
                $str = date("Y-m-d",strtotime("+{$day} day"))." 0:0:0";
                $data["start"] = strtotime($str);
                $str = date("Y-m-d",strtotime("+{$day} day"))." 24:00:00";
                $data["end"] = strtotime($str);
            }
            return $data;
        }
          
            $now_time = strtotime(date("Y-m-d 0:0:0",time()));//      
            $info = $signOn->Exist($now_time,$userId);//             
            $integral = 0;
            $userInfo = $user->getInfoById("integral,continuity_day",$userId);//           
            if (Util::havedata($info)){//
                dumpJson(REPERROR,"         ");
            }else{
                $yestaday = Util::getLastTime(1,'before');//       
                $existYestasySignOn = $signOn->checkSignOn($yestaday['start'],$yestaday['end'],$userId);//        
                if ($existYestasySignOn){//    
                	//        	
                	}
                }else{//        
    				//         
                }
     			//         
     			
                //    
                Db::startTrans();
                try{
    				//    
                    if (//        ){
                    	//    ,  sql
                        Db::commit();
                    }else{
                    	//    ,    
                        Db::rollback();
                    }
                }catch (\Exception $e){
                	//    ,    
                    Db::rollback();
                }
            }
    

    参考までに考えて、良い操作があって、みんなに提出してもらって、ありがとうございます