$id=input('id');
//获取需要签到的id
$now=time();
//或许现在的时间戳
$time=strtotime(date('Y-m-d'));
//获取今天0点的时间戳
$sign=\app\admin\model\Homesign::get($id);
//查询这个用户的签到记录
$user=\app\admin\model\Homeuser::get($id);
//查询这个用户的用户信息
//用户表和签到表id相同,分表是为了更好的查询数据
if(isset($sign)){
//查询签到表中有没有这条数据
//如果没有则添加一条数据
$last_time=$time-86400;
//获取昨天的时间戳
if($sign['sign_time']>$time){
//如果签到时间大于今天的时间戳,提示用户今天已经签到了
return json(['code'=>2,'data'=>'','msg'=>'今天已经签到过了']);
}
if($sign['sign_time']<$time && $sign['sign_time']>$last_time){
//判断用户的签到时间小于今天的时间戳,大于昨天的时间戳表示连续签到
$arr['day']=$sign['day']+1;
//签到的天数在原来的基础上增加
$arr['bonus']=$sign['bonus']+10;
//签到的金币数在原来的基础上增加
$arr['sign_time']=$now;
//更新时间戳
$res=\app\admin\model\Homesign::where('id',$sign['id'])->update($arr);
//对数据进行修改
if($res){
\app\admin\model\Homeuser::where('id',$id)->update(['inte'=>$user['inte']+$sign['bonus']+10]);
return json(['code'=>1,'data'=>'','msg'=>'连续签到成功']);
}
}
if($sign['sign_time']<$last_time){
// 用户签到的时间戳小于昨天0点的时间戳
$arr['day']=1;
$arr['bonus']=10;
$arr['sign_time']=$now;
$res=\app\admin\model\Homesign::where('id',$sign['id'])->update($arr);
if($res){
\app\admin\model\Homeuser::where('id',$id)>update(['inte'=>$user['inte']+10]);
return json(['code'=>1,'data'=>'','msg'=>'连续签到中断,签到成功']);
}
}
}
$arr['id']=$id;
$arr['day']=1;
$arr['bonus']=10;
$arr['sign_time']=$now;
$res=\app\admin\model\Homesign::create($arr);
\app\admin\model\Homeuser::where('id',$id)->update(['inte'=>$user['inte']+10]);
if($res){
return json(['code'=>1,'data'=>'','msg'=>'签到成功']);
}
return json(['code'=>2,'data'=>'','msg'=>'签到失败']);
php 签到功能的实现
最新推荐文章于 2025-01-09 21:52:56 发布