|
|
|
|
@ -351,6 +351,8 @@ class OrdersController extends CommonController
|
|
|
|
|
* @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="获取护工"
|
|
|
|
|
@ -361,6 +363,7 @@ class OrdersController extends CommonController
|
|
|
|
|
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) {
|
|
|
|
|
@ -369,8 +372,13 @@ class OrdersController extends CommonController
|
|
|
|
|
->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);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$paramedics = $paramedics->OfProject(request()->project_id);
|
|
|
|
|
switch (request()->has_ongoing_orders) {
|
|
|
|
|
case "1":
|
|
|
|
|
$paramedics = $paramedics->has("ongoingOrders");
|
|
|
|
|
@ -384,7 +392,7 @@ class OrdersController extends CommonController
|
|
|
|
|
|
|
|
|
|
$page_size = request()->page_size ? (int)request()->page_size : 5;
|
|
|
|
|
$paramedics = $paramedics
|
|
|
|
|
->select("id", "name", "sex", "mobile", "birthday", "avatar", "health_certificate", "work_certificate")
|
|
|
|
|
->select("id", "name", "sex", "mobile", "birthday", "avatar", "work_years", "has_health_certificate", "has_work_certificate")
|
|
|
|
|
->withCount("ongoingOrders")
|
|
|
|
|
->orderBy("ongoing_orders_count")
|
|
|
|
|
->paginate($page_size);
|
|
|
|
|
|