From 359b811900c436418d1932e9947ff3114bf6de33 Mon Sep 17 00:00:00 2001 From: weizong song Date: Sun, 14 Mar 2021 23:48:39 +0800 Subject: [PATCH] up --- .../Controllers/Customer/OrdersController.php | 56 +++++++++++++++++-- routes/web.php | 1 + 2 files changed, 52 insertions(+), 5 deletions(-) diff --git a/app/Http/Controllers/Customer/OrdersController.php b/app/Http/Controllers/Customer/OrdersController.php index ac817dd..ba59c99 100644 --- a/app/Http/Controllers/Customer/OrdersController.php +++ b/app/Http/Controllers/Customer/OrdersController.php @@ -133,8 +133,8 @@ class OrdersController extends CommonController $model = new Paramedic(); $model = $model->where("project_id", $bed->project_id); $model = $model->where("status", 1); - $model = $model->with(["levelInProject"]); - $model = $model->select("id", "name", "avatar", "sex", "birthday", "hometown", "work_years", "paramedic_level_id"); + $model = $model->with(["project", "levelInProject"]); + $model = $model->select("id", "name", "avatar", "sex", "birthday", "hometown", "work_years", "paramedic_level_id", "project_id"); //性别筛选:如果是女患者,选择女的护工 if ($request->sex == "女") { $model = $model->where("sex", "女"); @@ -238,7 +238,7 @@ class OrdersController extends CommonController * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), * @OA\Parameter(name="keyword", in="query", @OA\Schema(type="string"), required=false, description="查询关键词"), * @OA\Parameter(name="page", in="query", @OA\Schema(type="integer"), required=false, description="当前页码,默认为1"), - * @OA\Parameter(name="pageLength", in="query", @OA\Schema(type="integer"), required=false, description="每页数量,默认为5"), + * @OA\Parameter(name="page_size", in="query", @OA\Schema(type="integer"), required=false, description="每页数量,默认为5"), * @OA\Parameter(name="status", in="query", @OA\Schema(type="string"), required=false, description="订单状态:[unconfirmed=>待确认,unassigned=>待派单,ongoing=>进行中,finished=>已完成]"), * @OA\Response( * response="200", @@ -271,6 +271,7 @@ class OrdersController extends CommonController // } + $page_size = request()->page_size ?? 5; $data = $data->with([ "customer", "project", @@ -282,7 +283,7 @@ class OrdersController extends CommonController $query->with(["room", "building"]); }, "paramedic" - ])->paginate(5); + ])->paginate($page_size); foreach ($data as $order) { $order = $order->refreshTotal(); } @@ -329,6 +330,51 @@ class OrdersController extends CommonController return response()->json($order->toArray()); } + /** + * @OA\Get( + * path="/customer/get-project-paramedics/{project_id}", + * summary="V2-获取护工列表", + * description="获取护工列表", + * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), + * @OA\Parameter(name="project_id", in="path", @OA\Schema(type="integer"), required=true, description="project_id"), + * @OA\Parameter(name="order_by", in="query", @OA\Schema(type="string"), required=false, description="排序方式:age|work_years|stars(暂不支持)"), + * @OA\Parameter(name="asc_or_desc", in="query", @OA\Schema(type="string"), required=false, description="升序或降序,默认升序asc"), + * @OA\Parameter(name="page", in="query", @OA\Schema(type="integer"), required=false, description="当前页码,默认为1"), + * @OA\Parameter(name="page_size", in="query", @OA\Schema(type="integer"), required=false, description="每页数量,默认为5"), + * @OA\Response( + * response="200", + * description="获取护工列表" + * ) + * ) + */ + + public function getProjectParamedics($project_id) + { + $model = new Paramedic(); + $model = $model->ofProject($project_id); + $model = $model->where("status", 1); + $model = $model->with(["project", "levelInProject"]); + $model = $model->select("id", "name", "avatar", "sex", "birthday", "hometown", "work_years", "paramedic_level_id", "project_id"); + + $asc_or_desc = request()->asc_or_desc == "desc" ? "desc" : "asc"; + switch (request()->order_by) { + case "age": + $order_by = "birthday"; + $asc_or_desc = $asc_or_desc == "desc" ? "asc" : "desc"; + break; + case "work_years": + $order_by = "work_years"; + break; + default: + $order_by = "id"; + } + + $page_size = request()->page_size ?? 5; + $paramedics = $model->orderBy($order_by, $asc_or_desc)->paginate($page_size); + + return response()->json($paramedics ? $paramedics->toArray() : null); + } + /** * @OA\Get( * path="/customer/get-paramedic/{id}", @@ -345,7 +391,7 @@ class OrdersController extends CommonController public function getParamedic($id) { - $paramedic = (new Paramedic())->with(["level"])->find($id); + $paramedic = (new Paramedic())->with(["level", "project"])->find($id); return response()->json($paramedic ? $paramedic->toArray() : null); } diff --git a/routes/web.php b/routes/web.php index 5cb2d3d..cafb4b9 100644 --- a/routes/web.php +++ b/routes/web.php @@ -103,6 +103,7 @@ Route::group(["namespace" => "Customer", "prefix" => "customer"], function () { Route::get('get-product-by-project/{id}', 'OrdersController@getProductByProject'); Route::get('get-areas-by-project/{id}', 'OrdersController@getAreasByProject'); Route::get('get-beds-by-area/{id}', 'OrdersController@getBedsByArea'); + Route::get('get-project-paramedics/{project_id}', 'OrdersController@getProjectParamedics'); Route::get('get-orders', 'OrdersController@list'); Route::get('get-order/{id}', 'OrdersController@getOrder'); Route::get('get-available-paramedics', 'OrdersController@getAvailableParamedics');