From 47f52e02556bed995a21553e07304138593c97c4 Mon Sep 17 00:00:00 2001 From: shuixiang Date: Fri, 10 Sep 2021 17:07:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9D=90=E4=B8=8B=E6=8E=92=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/WorkorderController.php | 43 ++++++++++++------- .../Controllers/WorkorderController.php | 21 ++++++--- .../Controllers/WorkorderController.php | 21 ++++++--- app/Models/WorkorderItem.php | 5 +++ ...21_09_10_144727_update_workorder_table.php | 2 + 5 files changed, 64 insertions(+), 28 deletions(-) diff --git a/app/AdminAgent/Controllers/WorkorderController.php b/app/AdminAgent/Controllers/WorkorderController.php index 668273c..a66d9ed 100755 --- a/app/AdminAgent/Controllers/WorkorderController.php +++ b/app/AdminAgent/Controllers/WorkorderController.php @@ -31,16 +31,25 @@ class WorkorderController extends AdminController { $workorderId = \request('workorder_id',0); $userList = $msgList = []; - $workorder = \App\Models\Workorder::query() - ->with(['point','publisher']) - ->where(['publisher_id' => Admin::user()->id,'publisher_type' => DemandTraits::$col[0]]) - ->orWhere(function ($query) { - $query->where('point_id',Admin::user()->id) - ->where('point_type',DemandTraits::$col[0]); + + $workorder = WorkorderItem::query() + ->with(['workorder.point', 'workorder.publisher']) + ->whereHas('workorder', function ($q) { + return $q->where(['publisher_id' => Admin::user()->id,'publisher_type' => DemandTraits::$col[0]]) + ->orWhere(function ($query) { + $query->where('point_id',Admin::user()->id) + ->where('point_type',DemandTraits::$col[0]); + }) + ->orderByDesc('updated_at'); }) + ->groupBy('workorder_id') ->orderByDesc('updated_at') ->get(); + $workorder = $workorder->map(function ($item, $key) { + return $item->workorder; + })->all(); + // 先这么处理吧 if ($workorderId == 0 && !empty($workorder)) { return redirect('/admin-agent/workorder_item?workorder_id='.$workorder[0]->id); @@ -77,16 +86,6 @@ class WorkorderController extends AdminController $msgList [] = $arr; } - $currentWorkorder = \App\Models\Workorder::find($workorderId); - array_unshift($msgList, [ - 'type' => 'op', - 'it_type' => 1, - 'avatar' => Storage::url($currentWorkorder->publisher->avatar), - 'name' => $currentWorkorder->publisher->name, - 'content' => $currentWorkorder->content, - 'created_at_text' => $currentWorkorder->created_at, - ]); - $data = [ 'user_list' => $userList, 'msg_list' => $msgList, @@ -227,6 +226,18 @@ class WorkorderController extends AdminController $form->publisher_id = Admin::user()->id; } }); + + $form->saved(function (Form $form) { + if ($form->isCreating()) { + $item = new WorkorderItem(); + $item->workorder_id = $form->getKey(); + $item->content = $form->content; + $item->type = 1; + $item->publisher_type = DemandTraits::$col[0]; + $item->publisher_id = Admin::user()->id; + $item->save(); + } + }); }); } diff --git a/app/AdminGuide/Controllers/WorkorderController.php b/app/AdminGuide/Controllers/WorkorderController.php index 88d4e7d..e14b5f2 100755 --- a/app/AdminGuide/Controllers/WorkorderController.php +++ b/app/AdminGuide/Controllers/WorkorderController.php @@ -32,16 +32,25 @@ class WorkorderController extends AdminController { $workorderId = \request('workorder_id',0); $userList = $msgList = []; - $workorder = \App\Models\Workorder::query() - ->with(['point','publisher']) - ->where(['publisher_id' => Admin::user()->id,'publisher_type' => DemandTraits::$col[2]]) - ->orWhere(function ($query) { - $query->where('point_id',Admin::user()->id) - ->where('point_type',DemandTraits::$col[2]); + + $workorder = WorkorderItem::query() + ->with(['workorder.point', 'workorder.publisher']) + ->whereHas('workorder', function ($q) { + return $q->where(['publisher_id' => Admin::user()->id,'publisher_type' => DemandTraits::$col[2]]) + ->orWhere(function ($query) { + $query->where('point_id',Admin::user()->id) + ->where('point_type',DemandTraits::$col[2]); + }) + ->orderByDesc('updated_at'); }) + ->groupBy('workorder_id') ->orderByDesc('updated_at') ->get(); + $workorder = $workorder->map(function ($item, $key) { + return $item->workorder; + })->all(); + // 先这么处理吧 if ($workorderId == 0 && !empty($workorder)) { return redirect('/admin-guide/workorder_item?workorder_id='.$workorder[0]->id); diff --git a/app/AdminSupplier/Controllers/WorkorderController.php b/app/AdminSupplier/Controllers/WorkorderController.php index fc86b8c..51a3321 100755 --- a/app/AdminSupplier/Controllers/WorkorderController.php +++ b/app/AdminSupplier/Controllers/WorkorderController.php @@ -31,16 +31,25 @@ class WorkorderController extends AdminController { $workorderId = \request('workorder_id',0); $userList = $msgList = []; - $workorder = \App\Models\Workorder::query() - ->with(['point','publisher']) - ->where(['publisher_id' => Admin::user()->id,'publisher_type' => DemandTraits::$col[1]]) - ->orWhere(function ($query) { - $query->where('point_id',Admin::user()->id) - ->where('point_type',DemandTraits::$col[1]); + + $workorder = WorkorderItem::query() + ->with(['workorder.point', 'workorder.publisher']) + ->whereHas('workorder', function ($q) { + return $q->where(['publisher_id' => Admin::user()->id,'publisher_type' => DemandTraits::$col[1]]) + ->orWhere(function ($query) { + $query->where('point_id',Admin::user()->id) + ->where('point_type',DemandTraits::$col[1]); + }) + ->orderByDesc('updated_at'); }) + ->groupBy('workorder_id') ->orderByDesc('updated_at') ->get(); + $workorder = $workorder->map(function ($item, $key) { + return $item->workorder; + })->all(); + // 先这么处理吧 if ($workorderId == 0 && !empty($workorder)) { return redirect('/admin-supplier/workorder_item?workorder_id='.$workorder[0]->id); diff --git a/app/Models/WorkorderItem.php b/app/Models/WorkorderItem.php index dfd4933..d46c5ad 100755 --- a/app/Models/WorkorderItem.php +++ b/app/Models/WorkorderItem.php @@ -17,4 +17,9 @@ class WorkorderItem extends Model { return $this->morphTo(); } + + public function workorder() + { + return $this->belongsTo(Workorder::class, 'workorder_id', 'id'); + } } diff --git a/database/migrations/2021_09_10_144727_update_workorder_table.php b/database/migrations/2021_09_10_144727_update_workorder_table.php index e10a2e3..28a3800 100644 --- a/database/migrations/2021_09_10_144727_update_workorder_table.php +++ b/database/migrations/2021_09_10_144727_update_workorder_table.php @@ -19,6 +19,7 @@ class UpdateWorkorderTable extends Migration Schema::table('workorder_item', function (Blueprint $table) { $table->text('content')->nullable()->change(); + $table->tinyInteger('is_read')->default(0)->comment('是否未读,1已读 0未读'); }); } @@ -35,6 +36,7 @@ class UpdateWorkorderTable extends Migration Schema::table('workorder_item', function (Blueprint $table) { $table->string('content')->change(); + $table->dropColumn('is_read'); }); } }