From 22610d61a55cbd910a17010e81569b9e8e7f8f09 Mon Sep 17 00:00:00 2001 From: "allen.yan" Date: Thu, 17 Jul 2025 16:57:59 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AA=BF=E6=95=B4=20updateOrCreate=20=E4=B8=8D?= =?UTF-8?q?=E6=9C=83=E6=96=B0=E5=A2=9E=E7=9A=84=E5=95=8F=E9=A1=8C=20202507?= =?UTF-8?q?17?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/RoomControlController.php | 36 ++++++++++++------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/app/Http/Controllers/RoomControlController.php b/app/Http/Controllers/RoomControlController.php index 261f7be..65cc3e5 100644 --- a/app/Http/Controllers/RoomControlController.php +++ b/app/Http/Controllers/RoomControlController.php @@ -108,23 +108,33 @@ class RoomControlController extends Controller $validated['started_at'] = null; $validated['ended_at'] = null; } - - $room = Room::updateOrCreate( - [ - 'branch_id' => $validated['branch_id'], - 'floor' => $validated['floor'], - 'type' => $validated['type'], - 'name' => $validated['name'], - ], - [ - //'internal_ip' => $validated['internal_ip'], - //'port' => $validated['port'], + $room = Room::where([ + 'branch_id' => $validated['branch_id'], + 'floor' => $validated['floor'], + 'type' => $validated['type'], + 'name' => $validated['name'], + ])->first(); + if ($room) { + // 更新 + $room->update([ 'is_online' => $validated['is_online'], 'status' => $validated['status'], 'started_at' => $validated['started_at'], 'ended_at' => $validated['ended_at'], - ] - ); + ]); + } else { + // 新增 + $room = Room::create([ + 'branch_id' => $validated['branch_id'], + 'floor' => $validated['floor'], + 'type' => $validated['type'], + 'name' => $validated['name'], + 'is_online' => $validated['is_online'], + 'status' => $validated['status'], + 'started_at' => $validated['started_at'], + 'ended_at' => $validated['ended_at'], + ]); + } return ApiResponse::success(new RoomResource($room->refresh())); } }