From 8267ed071c609fbefc3caa6a1e90afb155ad3a67 Mon Sep 17 00:00:00 2001 From: Jing Li Date: Mon, 27 May 2024 18:52:28 +0800 Subject: [PATCH] Fix --- .../Controllers/System/WorkflowController.php | 31 +++++++++++++------ app/Http/Controllers/Api/TaskController.php | 3 +- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/app/Admin/Controllers/System/WorkflowController.php b/app/Admin/Controllers/System/WorkflowController.php index 7530872..ab972f6 100644 --- a/app/Admin/Controllers/System/WorkflowController.php +++ b/app/Admin/Controllers/System/WorkflowController.php @@ -173,16 +173,29 @@ class WorkflowController extends AdminController public function getValueOptions(Request $request) { - $type = $request->input('type'); - $options = []; - if ($type == CheckType::Job->value) { - $options = Keyword::where('parent_key', 'job')->select(['key as value', 'name as label'])->get(); - } - if ($type == CheckType::User->value) { - $options = Employee::enable()->select(['id as value', 'name as label'])->get(); - } + $options = match (CheckType::tryFrom($request->input('type'))) { + CheckType::Job => Keyword::where('parent_key', 'job')->get(['key', 'name']), + CheckType::User => Employee::enable()->get(['id', 'name']), + default => collect(), + }; - return $this->response()->success($options); + return $this->response()->success( + $options->map(function ($item) { + switch (get_class($item)) { + case Keyword::class: + return ['value' => $item->key, 'label' => $item->name]; + break; + + case Employee::class: + return ['value' => $item->id, 'label' => $item->name]; + break; + + default: + return $item; + break; + } + })->all() + ); } public function apply(Request $request) diff --git a/app/Http/Controllers/Api/TaskController.php b/app/Http/Controllers/Api/TaskController.php index 8844c08..8111c3e 100644 --- a/app/Http/Controllers/Api/TaskController.php +++ b/app/Http/Controllers/Api/TaskController.php @@ -26,6 +26,7 @@ class TaskController extends Controller $orderBy = <<<'MySQL' CASE WHEN task_status = 1 THEN 100 + WHEN task_status = 9 THEN 50 ELSE 0 END MySQL; @@ -56,7 +57,7 @@ MySQL; } ) ->orderBy(DB::raw($orderBy), 'DESC') - ->orderBy('start_at', 'ASC') + ->orderBy('start_at', 'DESC') ->orderBy('end_at', 'ASC') ->simplePaginate($request->query('per_page', 20));