傳後台 room 資料同步 20250605

This commit is contained in:
allen.yan 2025-06-05 21:51:27 +08:00
parent 7d16775378
commit 42338c62b4
3 changed files with 19 additions and 15 deletions

View File

@ -32,18 +32,13 @@ class CheckRoomOnlineStatus extends Command
$room->is_online = false; $room->is_online = false;
$room->status = RoomStatus::Error; $room->status = RoomStatus::Error;
$room->save(); $room->save();
$response = (new MachineStatusForwarder(
$branch->external_ip ?? '',
'/api/room/receiveSwitch',
[
'branch_name' => $branch->name,
'room_name' => $room->type->value.$room->name,
'command' => 'error',
]
))->forward();
$this->info("Room [{$room->name}] marked as offline (no recent MachineStatus)"); $this->info("Room [{$room->name}] marked as offline (no recent MachineStatus)");
} }
$response = (new MachineStatusForwarder(
$branch->external_ip ?? '',
'/api/room/receiveSwitch',
$room->toArray()
))->forward();
} }
return 0; return 0;

View File

@ -200,8 +200,15 @@ class RoomControlController extends Controller
$room->is_online=1; $room->is_online=1;
$room->touch(); // 更新 updated_at $room->touch(); // 更新 updated_at
$room->save(); $room->save();
$response = (
new MachineStatusForwarder(
$branch->external_ip ?? '',
'/api/room/receiveSwitch',
$room->toArray()
)
)->forward();
} }
return ApiResponse::success([ return ApiResponse::success([
'data' => MachineStatus::create($validated), 'data' => MachineStatus::create($validated),
]); ]);
@ -309,7 +316,11 @@ class RoomControlController extends Controller
$room->started_at=$validated['started_at']; $room->started_at=$validated['started_at'];
$room->ended_at=$validated['ended_at']; $room->ended_at=$validated['ended_at'];
$room->save(); $room->save();
$response = (new MachineStatusForwarder($branch->external_ip, "/api/room/receiveSwitch", $validated))->forward(); $response = (new MachineStatusForwarder(
$branch->external_ip,
"/api/room/receiveSwitch",
$room->toArray()
))->forward();
return $validated['command']==='error' ? ApiResponse::error('機房控制失敗') : ApiResponse::success($room); return $validated['command']==='error' ? ApiResponse::error('機房控制失敗') : ApiResponse::success($room);
} }
} }

View File

@ -27,9 +27,7 @@ class MachineStatusForwarder
$parsed = parse_url($this->externalUrl); $parsed = parse_url($this->externalUrl);
$hostParts = explode('.', $parsed['host']); $hostParts = explode('.', $parsed['host']);
$mainDomain = count($hostParts) >= 3 $mainDomain = implode('.', array_slice($hostParts, 1));
? implode('.', array_slice($hostParts, 1))
: $parsed['host'];
$mainDomainUrl = "{$parsed['scheme']}://{$mainDomain}"; $mainDomainUrl = "{$parsed['scheme']}://{$mainDomain}";