From 3a19269ab669af1e65fd57181ce2a3c09b89ff55 Mon Sep 17 00:00:00 2001 From: "iVampireSP.com" Date: Sun, 1 Jan 2023 21:36:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=20=E5=B7=A5=E5=8D=95?= =?UTF-8?q?=E8=A7=92=E8=89=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Models/WorkOrder/Reply.php | 15 +++++++-- ...9_add_role_to_work_order_replies_table.php | 32 +++++++++++++++++++ .../views/admin/work-orders/show.blade.php | 16 ++++++---- 3 files changed, 54 insertions(+), 9 deletions(-) create mode 100644 database/migrations/2023_01_01_211259_add_role_to_work_order_replies_table.php diff --git a/app/Models/WorkOrder/Reply.php b/app/Models/WorkOrder/Reply.php index a6cb91a..8677b20 100644 --- a/app/Models/WorkOrder/Reply.php +++ b/app/Models/WorkOrder/Reply.php @@ -70,6 +70,7 @@ class Reply extends Model 'name', 'module_id', 'is_pending', + 'role' ]; protected static function boot() @@ -88,19 +89,27 @@ protected static function boot() throw_if($model->workOrder->isFailure(), CommonException::class, '工单还没有就绪。'); + // change work order status if (auth('sanctum')->check()) { - $model->user_id = auth()->id(); + $model->user_id = auth('sanctum')->id(); + $model->role = 'user'; $model->workOrder->status = 'user_replied'; - } - if (auth('module')->check() || auth('admin')->check()) { + } else if (auth('module')->check()) { $model->user_id = null; + $model->role = 'module'; $model->workOrder->status = 'replied'; broadcast(new UserEvent($model->user_id, 'work-order.replied', $model->workOrder)); + + } else if (auth('admin')->check()) { + $model->role = 'admin'; + } else { + $model->role = 'guest'; } + $model->workOrder->save(); }); diff --git a/database/migrations/2023_01_01_211259_add_role_to_work_order_replies_table.php b/database/migrations/2023_01_01_211259_add_role_to_work_order_replies_table.php new file mode 100644 index 0000000..35bfef7 --- /dev/null +++ b/database/migrations/2023_01_01_211259_add_role_to_work_order_replies_table.php @@ -0,0 +1,32 @@ +string('role')->default('user')->comment('回复角色')->after('module_id'); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down(): void + { + Schema::table('work_order_replies', function (Blueprint $table) { + $table->dropColumn('role'); + }); + } +}; diff --git a/resources/views/admin/work-orders/show.blade.php b/resources/views/admin/work-orders/show.blade.php index 33738b9..605bfa2 100644 --- a/resources/views/admin/work-orders/show.blade.php +++ b/resources/views/admin/work-orders/show.blade.php @@ -15,17 +15,21 @@ @foreach($replies as $reply)
- @if ($reply->user_id) - {{ $workOrder->user->name }} - @elseif($reply->module_id) + @if ($reply->role === 'user') + @if ($reply->user_id) + {{ $workOrder->user->name }} + @else + {{ $reply->name }} + @endif + @elseif ($reply->role === 'admin') + {{ config('app.display_name') }} + @elseif ($reply->role === 'module') {{ $workOrder->module->name }} @if ($reply->name) 的 {{ $reply->name }} @endif - @elseif ($reply->name === null && $reply->user_id === null && $reply->module_id === null) - {{ config('app.display_name') }} - @else + @elseif ($reply->role === 'guest') {{ $reply->name }} @endif