/**
* 点击签到(签到和补签是一个接口)
* @ApiInternal
* @ApiTitle (点击签到)
* @ApiSummary (点击签到)
* @ApiMethod (POST)
* @ApiParams (name="time", type="integer", required="false", description="时间(每个月的日期比如5月1就传1)")
* @ApiReturnParams (name="num", type="float", required=true,description="数量")
* @ApiReturn ()
*/
public function sign__log(){
$user = $this->auth->getUser();
$time = $this->request->param('time');
$year = date('Y',time());
$month = date('m',time());
$day = date('d',time());
$days = date("t");
$where = [
'year' => $year,
'month' => $month,
'day' => $time,
];
$is_sgin = Db::name('sign_log')->where($where)->find();
if($is_sgin){
$this->error('已经签过到了');
}
$sign_log = [
'user_id' => $user['id'],
'year' => $year,
'month' => $month,
'day' => $time,
'createtime' => time(),
];
if($time <= $day){
if($time < $day){
// 是否有补签卡
if($user['signature_num'] <= 0){
$this->error('抱歉,您暂时没有可用的补签次数');
}
// 减去补签卡次数
Db::name('user')->where('id',$user['id'])->setDec('signature_num');
// 是补签
$sign_log['is_repair'] = 1;
$memo = '补签获得';
}else{
$sign_log['is_repair'] = 0;
$memo = '签到获得';
}
// 签到 sign_log
Db::name('sign_log')->insert($sign_log);
$i = $this->exticle();
// 签到送积分
//根据$i是连续签到的第几天进行分发奖励
$give_score = 获得的积分数量;
// 存入积分表,加上积分
$saveuser['score'] = $user['score'] + $give_score;
$user_score_log = [
'user_id' => $user['id'],
'score' => $give_score,
'before' => $user['score'],
'after' => $user['score'] + $give_score,
'memo' => $memo,
'createtime' => time(),
];
Db::name('user_score_log')->insert($user_score_log);
//存入
$saveuser['count_sign'] = $user['count_sign'] + 1;
if($user['continuity_sign'] != $i){
$saveuser['continuity_sign'] = $i;
}
Db::name('user')->where('id',$user['id'])->update($saveuser);
if($time < $day){
$this->success('恭喜您,补签成功!',$i);
}else{
$this->success('恭喜您,签到成功!',$i);
}
}else{
$this->error('还没有到日期哦');
}
}
//获取连签的天数
public function exticle(){
$user = $this->auth->getUser();
$year = date('Y',time());
$month = date('m',time());
// $month = 5;
$day = date('d',time());
// $day = 31;
$thismonth = Db::name('sign_log')->field('day')->where(array('user_id'=>$user['id'],'year'=>$year,'month'=>$month))->order('day DESC')->select();
foreach($thismonth as $v){
$touch[] = $v['day'];
}
// var_dump($touch);exit;
if(count($thismonth) != 0){
if(count($touch) > 2){
if(in_array($day,$touch) || in_array($day-1,$touch)){
// 今天
for ($x=0; $x 1){
$i = $x + 1;
}
}
if(!isset($i)){
$i = count($touch);
}
}else{
//今天昨天都没有,连签变为0
$i = 0;
}
}else{
if(count($touch) == 1){
if($touch[0] == $day || $touch[0] == $day-1){
$i = 1;
}else{
$i = 0;
}
}else if(count($touch) == 2){
if($touch[0] == $day || $touch[0] == $day-1){
if($touch[0] - $touch[1] == 1){
$i = 2;
}else{
$i = 1;
}
}else{
$i = 0;
}
}
}
}else{
$i = 0;
}
return $i;
}
表设计


发表评论 取消回复