记录一下签到的功能,虽然网上很多,自己理解写出来就好。
$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]);
}