瀏覽代碼

更新获取题目接口,增加cur_question //当前第几题 索引从1 开始

郑晓宇 6 年之前
父節點
當前提交
3f6f93706d
共有 1 個文件被更改,包括 23 次插入7 次删除
  1. 23 7
      app/Home/Controllers/GameController.php

+ 23 - 7
app/Home/Controllers/GameController.php

@@ -28,17 +28,33 @@ class GameController extends Controller
             $response['msg'] = '缺少房间参数';
             return response()->json($response);
         }
+        //第几题
+        $cur_question = $request->input('cur_question');
+        if(!$cur_question){
+            $cur_question = 1;
+        }
         //获取当前房间问题
-        $questions = Redis::smembers($room_id);
-        $question = Question::inRandomOrder()->select('question_id','title')->where("is_released",1)->whereNotIn("question_id", $questions)->first();
-        $options = Option::select('option_id','title')->where("question_id",$question->question_id)->get($question->question_id);
-        Redis::sadd($room_id, (int) $question->question_id);
+        $questions = Redis::get($room_id . '_questions');
+        if($questions){
+            $questions = json_decode($questions);
+        }else{
+            $questions = [];
+        }
+        if(isset($questions[$cur_question - 1])){
+            $response['info'] = $questions[$cur_question - 1];
+        }else{
+            $question = Question::inRandomOrder()->select('question_id','title')->where("is_released",1)->whereNotIn("question_id", $questions)->first();
+            $options = Option::select('option_id','title')->where("question_id",$question->question_id)->get($question->question_id);
+            $info['question'] = $question; 
+            $info['options'] = $options; 
+            $info['questions_count'] = count($questions) + 1; 
+            array_push($questions, $info); 
+            Redis::set($room_id . '_questions', json_encode($questions));
+            $response['info'] = $info;
+        }
         //设置返回数据
         $response['code'] = 0;
         $response['msg'] = '获取成功';
-        $response['info']['question'] = $question;
-        $response['info']['options'] = $options;
-        $response['info']['questions_count'] = count($questions) + 1;
         return response()->json($response);
     }