lizhen_gitee 1 سال پیش
والد
کامیت
b6839b8306
1فایلهای تغییر یافته به همراه73 افزوده شده و 4 حذف شده
  1. 73 4
      application/api/controller/Usersign.php

+ 73 - 4
application/api/controller/Usersign.php

@@ -48,8 +48,77 @@ class Usersign extends Api
         $this->success('success',$data);
     }
 
-    //签到
+    //签到 得配置金币和第七天vip
     public function signin(){
+        $uid = $this->auth->id;
+
+        //记录日志
+        $data = [
+            'uid' => $uid,
+            'times' => 1,
+            'goldnum' => 0,
+            'createtime' => time(),
+        ];
+
+        $yesterday_time = strtotime('yesterday'); //昨天0点时间戳
+        $today_time = $yesterday_time + 86400; //今日0点时间戳
+
+        //修正当前次数
+        $check = Db::name('user_sign')->where('uid',$uid)->order('id desc')->find();
+        if($check){
+            //今天只能签一次
+            if($check['createtime'] > $today_time){
+                $this->error('今天已经签过了');
+            }
+            if ($check['createtime'] >= $yesterday_time) {
+                $data['times'] = $check['times'] + 1; //连续签到次数
+            }else{
+                //没有连起来,默认1
+            }
+
+        }
+
+        if($data['times'] > 7){
+            $data['times'] = 1;
+        }
+
+        //匹配对应金币数
+        $list = Db::name('signin')->order('id asc')->column('id,goldnum');
+        $data['goldnum'] = isset($list[$data['times']]) ? $list[$data['times']] : 0 ;
+
+        Db::startTrans();
+        //记录日志
+        $log_id = Db::name('user_sign')->insertGetId($data);
+        if(!$log_id){
+            Db::rollback();
+            $this->error('签到失败');
+        }
+
+        //加钱
+        $rs = model('wallet')->lockChangeAccountRemain($this->auth->id,$data['goldnum'],'+',0,'签到奖励',16,'jewel');
+        if($rs['status'] === false){
+            Db::rollback();
+            $this->error($rs['msg']);
+        }
+
+        //第七天赠送vip
+        /*$vip_rs = false;
+        $user_sign_gift_vipdays = intval(config('site.user_sign_gift_vipdays'));
+        if($data['times'] == 7 && $user_sign_gift_vipdays > 0){
+
+            $vip_rs = $this->gift_vip($user_sign_gift_vipdays);
+        }*/
+
+        Db::commit();
+        $remark = '获得金币'.$data['goldnum'];
+        /*if($vip_rs){
+            $remark .= ',vip'.$user_sign_gift_vipdays.'天';
+        }*/
+        $this->success('签到成功',$remark);
+    }
+
+    //签到,得礼物与随机钻石
+    public function signin_bak(){
         Db::startTrans();
         try {
             $uid = $this->auth->id;
@@ -169,7 +238,7 @@ class Usersign extends Api
 
     //第七天赠送vip
     //找出最近七天的次数
-    /*private function gift_vip($user_sign_gift_vipdays){
+    private function gift_vip($user_sign_gift_vipdays){
         $start = strtotime(date('Y-m-d')) - 518400;
         $map = [
             'uid' => $this->auth->id,
@@ -177,7 +246,7 @@ class Usersign extends Api
         ];
         $count = Db::name('user_sign')->where($map)->count();
 
-        if($count >= 7){
+        if($count >= 7){  //七天内签到次数 >= 7
             //赠送vip三天
             $add_time = 86400 * $user_sign_gift_vipdays;
 
@@ -197,5 +266,5 @@ class Usersign extends Api
             return true;
         }
         return false;
-    }*/
+    }
 }