郑晓宇 hace 6 años
padre
commit
441ba0b0df
Se han modificado 2 ficheros con 14 adiciones y 17 borrados
  1. 11 15
      app/Console/Commands/gamematch.php
  2. 3 2
      app/Home/Controllers/UserController.php

+ 11 - 15
app/Console/Commands/gamematch.php

@@ -115,6 +115,16 @@ class gamematch extends Command
                     'created_at' => date('Y-m-d H:i:s'),
                     'updated_at' => date('Y-m-d H:i:s'),
                 ]);
+                echo "玩家加入房间: {$user_id}\n";
+                //获取房间玩家信息
+                $room_users = RoomUser::where("room_id", $room_id)->pluck("user_id");
+                //判断对战是否开启标志
+                if(count($room_users) == $room->user_limit){
+                    unset($update_data);
+                    $update_data['is_full'] = 1;
+                    $update_data['start_at'] = date('Y-m-d H:i:s');
+                    Room::where("room_id", $room_id)->update($update_data);
+                }
                 if($user->win_count == 0 || ($user->win_count == 0 && $user->lose_count == 0)){
                     $win_rate = 0;
                 }else{
@@ -126,13 +136,7 @@ class gamematch extends Command
                     "avatar" => $user->avatar,
                     "win_rate" => round($win_rate, 2) * 100,
                 ];
-                //获取房间玩家信息
-                $group_users = Gateway::getUidListByGroup($room_id);
-                if(count($group_users) > 0 && count($group_users) < $room->user_limit){
-                    //清理不在房间的用户
-                    RoomUser::where("room_id", $room_id)->whereNotIn('user_id', array_values($group_users))->delete();
-                }
-                $players = User::select('user_id', 'avatar', 'name', 'win_count', 'lose_count')->whereIn("user_id", array_values($group_users))->get();
+                $players = User::select('user_id', 'avatar', 'name', 'win_count', 'lose_count')->whereIn("user_id", $room_users)->get();
                 foreach ($players as $k => $player) {
                     if($player->win_count == 0 || ($player->win_count == 0 && $player->lose_count == 0)){
                         $win_rate = 0;
@@ -150,14 +154,6 @@ class gamematch extends Command
                     "info" => $info
                 ];
                 Gateway::sendToGroup($room_id, json_encode($message));
-                echo "玩家加入房间: {$user_id}\n";
-                //判断对战是否开启标志
-                if(count($group_users) == $room->user_limit){
-                    unset($update_data);
-                    $update_data['is_full'] = 1;
-                    $update_data['start_at'] = date('Y-m-d H:i:s');
-                    Room::where("room_id", $room_id)->update($update_data);
-                }
 
                 //执行发题
                 sleep(2);

+ 3 - 2
app/Home/Controllers/UserController.php

@@ -185,8 +185,9 @@ class UserController extends Controller
                 "avatar" => $user->avatar,
                 "win_rate" => round($win_rate, 2) * 100,
             ];
-            $group_users = Gateway::getUidListByGroup($room_id);
-            $players = User::select('user_id', 'avatar', 'name', 'win_count', 'lose_count')->whereIn("user_id", array_values($group_users))->get();
+            //获取房间玩家信息
+            $room_users = RoomUser::where("room_id", $room_id)->pluck("user_id");
+            $players = User::select('user_id', 'avatar', 'name', 'win_count', 'lose_count')->whereIn("user_id", $room_users)->get();
             foreach ($players as $k => $player) {
                 if($player->win_count == 0 || ($player->win_count == 0 && $player->lose_count == 0)){
                     $win_rate = 0;