首页 > 其他 > 详细

tp5实现签到功能

时间:2021-08-05 10:36:05      阅读:11      评论:0      收藏:0      [点我收藏+]

/*
* 200 签到成功 (第一次签到提示)
* 201 恭喜您签到成功 (连续签到提示)
* 202 请勿重复签到(当天已经签过到了)
* 203 您已断签 已为您重新签到
* */
public function sign(){
$uid = session(‘id‘);//获取用户id
//查询当前用户是否签到
$res = Db::table(‘signs‘)->where([‘uid‘=>$uid])->find();
if ($res){
//获取用户签到时间
$signtime = $res[‘signtime‘];

//获取当天 12:00 时间
$date = date( " Y-m-d");
//转为时间戳
$dateTime = strtotime($date);
//获取昨天 整点
$homeTime = $dateTime-86400;
//获取明天 整点
$endTime = $dateTime+86400;
//判断当天是否签到
if ($signtime>$dateTime && $signtime<$endTime){
return json([‘code‘=>202,‘msg‘=>‘请勿重复签到‘]);
}
//如果昨天未签到
if ($signtime<$homeTime){
//如果没有连续签到 也就是断签 那就在原来的积分之上 累加初值
$count = $res[‘count‘] + 10;
//签到天数 改为1
$day = 1;
$signtime = time();
//修改数据
Db::table(‘signs‘)->where([‘uid‘=>$uid])->update([‘count‘=>$count,‘signtime‘=>$signtime,‘day‘=>$day]);
return json([‘code‘=>203,‘msg‘=>‘您已断签 已为您重新签到‘]);
}
//连续签到
if ($signtime>$homeTime && $signtime<$dateTime){
//如果连续签到 积分 = 签到天数 × 10
$count = $res[‘day‘]*10;
//签到天数 + 1
$day = $res[‘day‘] + 1;
$signtime = time();
Db::table(‘signs‘)->where([‘uid‘=>$uid])->update([‘count‘=>$count,‘signtime‘=>$signtime,‘day‘=>$day]);
return json([‘code‘=>201,‘msg‘=>‘您已断签 恭喜您签到成功‘]);

}
}else{
$data[‘signtime‘] = time();
$data[‘count‘] = 10;
$data[‘uid‘] = $uid;
$data[‘day‘] = 1;
$SignRes = Db::table(‘signs‘)->insert($data);
if ($SignRes){
return json([‘code‘=>200,‘msg‘=>‘签到成功‘]);
}
}
}

tp5实现签到功能

原文:https://www.cnblogs.com/guobusong/p/15101753.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!