记录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]);
		}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

时间轴-小文同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值