Browse Source

单点登录,投票返回更多数据

lizhen_gitee 4 months ago
parent
commit
846dcee89f
2 changed files with 40 additions and 61 deletions
  1. 39 61
      application/api/controller/Player.php
  2. 1 0
      application/common/library/Auth.php

+ 39 - 61
application/api/controller/Player.php

@@ -61,11 +61,36 @@ class Player extends Api
         }
 
         //登录用户票数的检查
-        $check_rs = $this->record_check($this->auth->id,$vote);
-        if($check_rs['status'] === false){
-            $this->error($check_rs['msg'],null,$check_rs['code']);//给不同的code,0报错,2跳到答题
+        $user_id = $this->auth->id;
+        //今天,投了几票
+        $today_record   = RedisUtil::getInstance(RedisKeyEnum::VOTE_RECORD.date('Y-m-d').':'.$user_id)->get();
+        //今天,用户答对的次数,也就是答题获得的票数
+        $question_vote  = RedisUtil::getInstance(RedisKeyEnum::EAXM_RIGHT.date('Y-m-d').':'.$user_id)->get();
+        //今天,用户答题的次数
+        $today_question = RedisUtil::getInstance(RedisKeyEnum::EAXM_TIMES.date('Y-m-d').':'.$user_id)->get();
+        //今天,免费的的票
+        $gift_votes = config('site.gift_votes_user_eday');
+        //今天,免费的答题次数
+        $exam_times = config('site.exam_times_user_eday');
+
+        //免费票 + 答对次数 - 已投票次数 < vote
+        $times = $gift_votes + $question_vote - $today_record;
+        if($times < 0){$times = 0;}
+
+        //票数不够
+        if($times < $vote){
+            $msg = '投票失败,您今日剩余投票次数: '.$times.'次';
+
+            //剩余投票次数,剩余答题次数
+            $result = [
+                'uservote' => $times,
+                'userquestion' => $exam_times - $today_question,
+            ];
+
+            $this->success($msg,$result);
         }
 
+
         Db::startTrans();
 
         //检查选手
@@ -103,74 +128,27 @@ class Player extends Api
         Db::commit();
 
         //今日投票次数,自增一次
-        RedisUtil::getInstance(RedisKeyEnum::VOTE_RECORD.date('Y-m-d').':'.$this->auth->id)->incrby_expire($vote,86400);
-
-
-
-        $this->success('投票成功');
-    }
-
-    //投票检查
-    private function record_check($user_id,$vote){
-        $result = array(
-            'status'=>true,
-            'code'=>1,
-            'msg'=>'',
-            'uservote' => 0,
-        );
+        $today_record = RedisUtil::getInstance(RedisKeyEnum::VOTE_RECORD.date('Y-m-d').':'.$this->auth->id)->incrby_expire($vote,86400);
 
 
-        //今天,投了几票
-
-        $today_record = RedisUtil::getInstance(RedisKeyEnum::VOTE_RECORD.date('Y-m-d').':'.$user_id)->get();
-        //今天,免费的的票
-        $gift_votes = config('site.gift_votes_user_eday');
-        //今天,免费的答题次数
-        $exam_times = config('site.exam_times_user_eday');
-
-        //投票次数   >=  所有的来源
-        if($today_record >= $gift_votes + $exam_times){
-            $result['status'] = false;
-            $result['code'] = 0;
-            $result['msg'] = '投票失败,您今日剩余0票,明天再来吧';
-            $result['uservote'] = 0;
-            return $result;
-        }
-
-        //今天,用户答对的次数,也就是答题获得的票数
-
-        $question_vote  = RedisUtil::getInstance(RedisKeyEnum::EAXM_RIGHT.date('Y-m-d').':'.$user_id)->get();
-
-        //免费票 + 答对次数 - 已投票次数 < vote
+        //免费票 + 答对次数 - 已投票次数
         $times = $gift_votes + $question_vote - $today_record;
         if($times < 0){$times = 0;}
-        if($times < $vote){
-            $result['status'] = false;
-            $result['code'] = 0;
-            $result['msg'] = '投票失败,您今日剩余: '.$times.'票';
-            $result['uservote'] = $times;
 
-            //今天,用户答题的次数
+        //
+        $msg = '投票成功,您今日剩余投票次数: '.$times.'次';
 
-            $today_question = RedisUtil::getInstance(RedisKeyEnum::EAXM_TIMES.date('Y-m-d').':'.$user_id)->get();
-
-            //还有答题机会
-            if($exam_times > $today_question){
-                $result['status'] = false;
-                $result['code'] = 2;
-                $result['msg'] = '投票失败,您今日剩余: '.$times.'票,可通过答题增加票数';
-                $result['uservote'] = $times;
-            }
+        //剩余投票次数,剩余答题次数
+        $result = [
+            'uservote' => $times,
+            'userquestion' => $exam_times - $today_question,
+        ];
 
-            return $result;
-        }
+        $this->success($msg,$result);
 
-        //剩余票数
-        $result['uservote'] = $times;
+    }
 
 
-        return $result;
-    }
 
 
 

+ 1 - 0
application/common/library/Auth.php

@@ -301,6 +301,7 @@ class Auth
                 $this->_user = $user;
 
                 $this->_token = Random::uuid();
+                Token::clear($user->id);
                 Token::set($this->_token, $user->id, $this->keeptime);
 
                 $this->_logined = true;