diff --git a/app/Http/Controllers/Manager/OrdersController.php b/app/Http/Controllers/Manager/OrdersController.php index 11d7665..e4761b1 100644 --- a/app/Http/Controllers/Manager/OrdersController.php +++ b/app/Http/Controllers/Manager/OrdersController.php @@ -340,92 +340,6 @@ class OrdersController extends CommonController return response()->json($paramedics); } - /** - * @OA\Get( - * path="/manager/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="string"), required=true, description="医院id"), - * @OA\Parameter(name="keyword", in="query", @OA\Schema(type="string"), required=true, description=""), - * @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\Parameter(name="has_ongoing_orders", in="query", @OA\Schema(type="integer"), required=false, description="是否空闲的筛选,枚举[0,1]"), - * @OA\Parameter(name="paramedic_level_id", in="query", @OA\Schema(type="integer"), required=false, description="护工等级ID,根据项目护工等级枚举"), - * @OA\Parameter(name="work_years", in="query", @OA\Schema(type="integer"), required=false, description="工作经验,筛选时以大于等于传递的值为筛选条件"), - * @OA\Response( - * response="200", - * description="获取护工" - * ) - * ) - */ - - public function getProjectParamedics() - { - $paramedics = new Paramedic(); - $paramedics = $paramedics->OfProject(request()->project_id); - if (request()->keyword) { - $keyword = request()->keyword; - $paramedics = $paramedics->where(function ($query) use ($keyword) { - $query - ->where("name", "like", "%{$keyword}%") - ->orWhere("serial", "like", "%{$keyword}%"); - }); - } - if (request()->paramedic_level_id) { - $paramedics = $paramedics->where("paramedic_level_id", request()->paramedic_level_id); - } - if (request()->work_years) { - $paramedics = $paramedics->where("work_years", ">=", (int)request()->work_years); - } - - switch (request()->has_ongoing_orders) { - case "1": - $paramedics = $paramedics->has("ongoingOrders"); - break; - case "0": - $paramedics = $paramedics->doesntHave("ongoingOrders"); - break; - default: - //do nothing - } - - $page_size = request()->page_size ? (int)request()->page_size : 5; - $paramedics = $paramedics - ->select("id", "name", "sex", "mobile", "birthday", "avatar", "work_years", "has_health_certificate", "has_work_certificate") - ->withCount("ongoingOrders") - ->orderBy("ongoing_orders_count") - ->paginate($page_size); - return response()->json($paramedics->toArray()); - } - - /** - * @OA\Get( - * path="/manager/get-paramedic/{id}", - * summary="V2-获取护工详情", - * description="获取护工详情", - * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), - * @OA\Parameter(name="id", in="path", @OA\Schema(type="integer"), required=true, description="id"), - * @OA\Response( - * response="200", - * description="获取护工详情" - * ) - * ) - */ - - public function getParamedic($id) - { - $paramedic = (new Paramedic())->with([ - "project" => function ($query) { - $query->select("id", "name", "address"); - }, - "level" => function ($query) { - $query->select("id", "name"); - } - ])->find($id); - return response()->json($paramedic ? $paramedic->toArray() : null); - } - /** * @OA\POST( * path="/manager/create-patient", diff --git a/app/Http/Controllers/Manager/ParamedicController.php b/app/Http/Controllers/Manager/ParamedicController.php index 4f72036..8f1cc63 100644 --- a/app/Http/Controllers/Manager/ParamedicController.php +++ b/app/Http/Controllers/Manager/ParamedicController.php @@ -164,4 +164,90 @@ class ParamedicController extends CommonController $paramedic->update($data); return response()->json($paramedic); } + + /** + * @OA\Get( + * path="/manager/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="string"), required=true, description="医院id"), + * @OA\Parameter(name="keyword", in="query", @OA\Schema(type="string"), required=true, description=""), + * @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\Parameter(name="has_ongoing_orders", in="query", @OA\Schema(type="integer"), required=false, description="是否空闲的筛选,枚举[0,1]"), + * @OA\Parameter(name="paramedic_level_id", in="query", @OA\Schema(type="integer"), required=false, description="护工等级ID,根据项目护工等级枚举"), + * @OA\Parameter(name="work_years", in="query", @OA\Schema(type="integer"), required=false, description="工作经验,筛选时以大于等于传递的值为筛选条件"), + * @OA\Response( + * response="200", + * description="获取护工" + * ) + * ) + */ + + public function getProjectParamedics() + { + $paramedics = new Paramedic(); + $paramedics = $paramedics->OfProject(request()->project_id); + if (request()->keyword) { + $keyword = request()->keyword; + $paramedics = $paramedics->where(function ($query) use ($keyword) { + $query + ->where("name", "like", "%{$keyword}%") + ->orWhere("serial", "like", "%{$keyword}%"); + }); + } + if (request()->paramedic_level_id) { + $paramedics = $paramedics->where("paramedic_level_id", request()->paramedic_level_id); + } + if (request()->work_years) { + $paramedics = $paramedics->where("work_years", ">=", (int)request()->work_years); + } + + switch (request()->has_ongoing_orders) { + case "1": + $paramedics = $paramedics->has("ongoingOrders"); + break; + case "0": + $paramedics = $paramedics->doesntHave("ongoingOrders"); + break; + default: + //do nothing + } + + $page_size = request()->page_size ? (int)request()->page_size : 5; + $paramedics = $paramedics + ->select("id", "name", "sex", "mobile", "birthday", "avatar", "work_years", "has_health_certificate", "has_work_certificate") + ->withCount("ongoingOrders") + ->orderBy("ongoing_orders_count") + ->paginate($page_size); + return response()->json($paramedics->toArray()); + } + + /** + * @OA\Get( + * path="/manager/get-paramedic/{id}", + * summary="V2-获取护工详情", + * description="获取护工详情", + * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), + * @OA\Parameter(name="id", in="path", @OA\Schema(type="integer"), required=true, description="id"), + * @OA\Response( + * response="200", + * description="获取护工详情" + * ) + * ) + */ + + public function getParamedic($id) + { + $paramedic = (new Paramedic())->with([ + "project" => function ($query) { + $query->select("id", "name", "address"); + }, + "level" => function ($query) { + $query->select("id", "name"); + } + ])->find($id); + return response()->json($paramedic ? $paramedic->toArray() : null); + } } diff --git a/app/Http/Controllers/Manager/StatisticsController.php b/app/Http/Controllers/Manager/StatisticsController.php index 716b24f..e762666 100644 --- a/app/Http/Controllers/Manager/StatisticsController.php +++ b/app/Http/Controllers/Manager/StatisticsController.php @@ -9,6 +9,23 @@ use Illuminate\Support\Facades\DB; class StatisticsController extends CommonController { + /** + * @OA\Get( + * path="/manager/statistics/overview", + * summary="V2-获取项目首页总览数据统计", + * description="获取项目首页总览数据统计", + * @OA\Parameter(name="project_id", in="query", @OA\Schema(type="integer"), required=true, description="医院ID"), + * @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"), + * @OA\Response( + * response="200", + * description="获取项目首页总览数据统计" + * ) + * ) + */ + public function overview() { + + } + /** * @OA\Get( * path="/manager/statistics/beds", diff --git a/routes/web.php b/routes/web.php index 567f77c..4b27f59 100644 --- a/routes/web.php +++ b/routes/web.php @@ -132,17 +132,17 @@ Route::group(["namespace" => "Manager", "prefix" => "manager"], function () { Route::post('update-paramedic/{id}', 'ParamedicController@updateParamedic'); Route::post('delete-paramedic/{id}', 'ParamedicController@deleteParamedic'); Route::post('toggle-paramedic/{id}', 'ParamedicController@toggleParamedic'); + Route::get('get-paramedics', 'ParamedicController@getParamedics'); + Route::get('get-project-paramedics/{project_id}', 'ParamedicController@getProjectParamedics'); + Route::get('get-paramedic/{id}', 'ParamedicController@getParamedic'); Route::post('me', 'AuthController@me'); Route::get('get-projects', 'OrdersController@getProjects'); Route::get('get-notifications', 'AuthController@getNotifications'); Route::get('get-notification/{id}', 'AuthController@getNotification'); Route::get('get-care-product/{project_id}', 'OrdersController@getCareProduct'); - Route::get('get-paramedics', 'OrdersController@getParamedics'); - Route::get('get-paramedic/{id}', 'OrdersController@getParamedic'); Route::get('get-project-orders-count/{project_id}', 'OrdersController@getProjectOrdersCount'); Route::get('get-available-paramedics', 'OrdersController@getAvailableParamedics'); - Route::get('get-project-paramedics/{project_id}', 'OrdersController@getProjectParamedics'); Route::get('get-project-paramedic-levels/{project_id}', 'OrdersController@getProjectParamedicLevels'); Route::get('get-project-areas/{project_id}', 'OrdersController@getProjectAreas'); Route::get('get-area-beds/{area_id}', 'OrdersController@getAreaBeds');