记录php签到

记录一下签到的功能,虽然网上很多,自己理解写出来就好。

		$postField = 'qd_id,mid,stime,atime,days,is_sign';
		$data = $this->request->only(explode(',',$postField),'post',null);
		if(empty($data['mid'])) return json(['status'=>$this->errorCode,'msg'=>'参数错误']);
		$da = time();//获取当前时间
		//$lianxu = Db::name('lianxu')->select();//获取后台设置的连续签天数对应的加成积分

		$qq = Db::name('yhqd')->where('mid',$data['mid'])->find();//查询当前用户在签到表是否存在


		$qian = Db::name('yhqd')->where('mid',$data['mid'])->find();//查询当前用户在签到表是否存在

		
		$days = $qian['days'];//连续签到天数
		$atime = $qian['atime'];//最后签到时间
		$jifen = $qian['jifen'];//当前用户积分
		$rignin_count = $qian['rignin_count'];//累计签到天数
		$stime = mktime(0,0,0,date('m'),date('d')+1,date('Y'));;//获取签到时间




		if ($qian) {
    
    
			if (time() > $atime) {
    
    
				$time = $da - $qian['atime'];//时间差
				if ($time > 24*60*60) {
    
     //连续签到断开     (第一天)
					Db::name('yhqd')->where(['mid'=>$data['mid']])->update(['days'=>1,'atime'=>$stime,'jifen'=>$jifen +1,'rignin_count'=>$rignin_count +1]);
				}else if ($time < 24*60*60 && $days==1) {
    
     // (第二天)
					Db::name('yhqd')->where(['mid'=>$data['mid']])->update(['days'=>$days+1,'atime'=>$stime,'jifen'=>$jifen +2,'rignin_count'=>$rignin_count +1]);
				}else if ($time < 24*60*60 && $days==2) {
    
     // (第三天)
					Db::name('yhqd')->where(['mid'=>$data['mid']])->update(['days'=>$days+1,'atime'=>$stime,'jifen'=>$jifen +3,'rignin_count'=>$rignin_count +1]);
				}else if ($time < 24*60*60 && $days==3) {
    
     // (第四天)
					Db::name('yhqd')->where(['mid'=>$data['mid']])->update(['days'=>$days+1,'atime'=>$stime,'jifen'=>$jifen +4,'rignin_count'=>$rignin_count +1]);
				}else if ($time < 24*60*60 && $days==4) {
    
     // (第五天)
					Db::name('yhqd')->where(['mid'=>$data['mid']])->update(['days'=>$days+1,'atime'=>$stime,'jifen'=>$jifen +5,'rignin_count'=>$rignin_count +1]);
				}else if ($time < 24*60*60 && $days==5) {
    
     // (第六天)
					Db::name('yhqd')->where(['mid'=>$data['mid']])->update(['days'=>$days+1,'atime'=>$stime,'jifen'=>$jifen +6,'rignin_count'=>$rignin_count +1]);
				}else if ($time < 24*60*60 && $days==6) {
    
     // (第七天)
					Db::name('yhqd')->where(['mid'=>$data['mid']])->update(['days'=>$days+1,'atime'=>$stime,'jifen'=>$jifen +7,'rignin_count'=>$rignin_count +1]);
				}else{
    
    	//(7天以上都加7分)
					Db::name('yhqd')->where(['mid'=>$data['mid']])->update(['days'=>$days+1,'atime'=>$stime,'jifen'=>$jifen +7,'rignin_count'=>$rignin_count +1]);
				}
				return json(['status'=>$this->successCode,'msg'=>'签到成功','status'=>200]);
			}else{
    
    
				return json(['status'=>$this->successCode,'msg'=>'今天已经签到啦!','status'=>201]);
			}
		}else{
    
    
			$gqd = Db::name('yhqd')->insert(['mid'=>$data['mid'],'stime'=>$da,'atime'=>$da,'days'=>1,'is_sign'=>1,'jifen'=>1,'rignin_count'=>1]);
			return json(['status'=>$this->successCode,'msg'=>'签到成功啦啦啦!!','status'=>200]);
		}

猜你喜欢

转载自blog.csdn.net/weixin_43018356/article/details/111302951