|
@@ -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);
|