From 6e63b00cabb0ef3bef9c34609a8d2797537652d8 Mon Sep 17 00:00:00 2001 From: liyinglin Date: Fri, 10 Nov 2023 15:30:25 +0800 Subject: [PATCH 1/3] 1 --- .../Controllers/Admin/OrdersController.php | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/app/Http/Controllers/Admin/OrdersController.php b/app/Http/Controllers/Admin/OrdersController.php index 5ffb8ae..d4d8424 100755 --- a/app/Http/Controllers/Admin/OrdersController.php +++ b/app/Http/Controllers/Admin/OrdersController.php @@ -17,6 +17,7 @@ use App\Models\Project; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Maatwebsite\Excel\Facades\Excel; +use Spatie\Permission\Models\Role; class OrdersController extends CommonController { @@ -45,15 +46,21 @@ class OrdersController extends CommonController $user = auth()->user(); $areaId = AdminAreaLink::where('project_id', $project_id)->where('admin_id', $user->id)->pluck('area_id'); - $bedList = Bed::whereIn('area_id',$areaId)->pluck('id'); + $bedList = Bed::whereIn('area_id', $areaId)->pluck('id'); + + // 判断是否护士长 + $userId = auth()->id(); + $roleId = Role::where('name', 'like', '%护士长%')->where('guard_name', 'admin')->value('id'); + $hushizhang = DB::table('model_has_roles')->where('role_id', $roleId) + ->where('model_type', 'App\Admin')->where('model_id', $userId)->count(); if ($request->keyword) { $this->model = $this->model->where(function ($query) use ($request) { $query->where("serial", "like", "%" . $request->keyword . "%") ->orWhere("contact", "like", "%" . $request->keyword . "%") ->orWhere("mobile", "like", "%" . $request->keyword . "%"); - })->where(function ($query) use ($bedList) { - if ($bedList->isNotEmpty()) { + })->where(function ($query) use ($hushizhang, $bedList) { + if ($hushizhang) { $query->whereIn('bed_id', $bedList); } }); @@ -75,7 +82,7 @@ class OrdersController extends CommonController "customer", "manager", "bed" => function ($query) { - $query->with(["room", "building","area"]); + $query->with(["room", "building", "area"]); } ]) ->orderBy("id", "desc"); @@ -163,7 +170,7 @@ class OrdersController extends CommonController $user = auth()->user(); $areaId = AdminAreaLink::where('project_id', $project_id)->where('admin_id', $user->id)->pluck('area_id'); - $bedList = Bed::whereIn('area_id',$areaId)->pluck('id'); + $bedList = Bed::whereIn('area_id', $areaId)->pluck('id'); $this->model = $this->model->where("project_id", $project_id)->whereNotNull("scored_at"); if (request()->keyword) { @@ -186,7 +193,7 @@ class OrdersController extends CommonController "customer", "manager", "bed" => function ($query) { - $query->with(["room", "building","area"]); + $query->with(["room", "building", "area"]); } ]) ->orderBy("id", "desc") From d7a6d6add0798064047c7e0b8033eb68815e2259 Mon Sep 17 00:00:00 2001 From: liyinglin Date: Fri, 10 Nov 2023 16:11:33 +0800 Subject: [PATCH 2/3] 1 --- .../Controllers/Admin/OrdersController.php | 25 +++++++++---------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/app/Http/Controllers/Admin/OrdersController.php b/app/Http/Controllers/Admin/OrdersController.php index d4d8424..def1431 100755 --- a/app/Http/Controllers/Admin/OrdersController.php +++ b/app/Http/Controllers/Admin/OrdersController.php @@ -44,28 +44,27 @@ class OrdersController extends CommonController $this->model = $this->model->whereRaw("UNIX_TIMESTAMP(`created_at`) >= " . $start_timestamp . " and UNIX_TIMESTAMP(`created_at`) < " . $end_timestamp); $this->model = $this->model->where("project_id", $project_id); - $user = auth()->user(); - $areaId = AdminAreaLink::where('project_id', $project_id)->where('admin_id', $user->id)->pluck('area_id'); - $bedList = Bed::whereIn('area_id', $areaId)->pluck('id'); - - // 判断是否护士长 - $userId = auth()->id(); - $roleId = Role::where('name', 'like', '%护士长%')->where('guard_name', 'admin')->value('id'); - $hushizhang = DB::table('model_has_roles')->where('role_id', $roleId) - ->where('model_type', 'App\Admin')->where('model_id', $userId)->count(); if ($request->keyword) { $this->model = $this->model->where(function ($query) use ($request) { $query->where("serial", "like", "%" . $request->keyword . "%") ->orWhere("contact", "like", "%" . $request->keyword . "%") ->orWhere("mobile", "like", "%" . $request->keyword . "%"); - })->where(function ($query) use ($hushizhang, $bedList) { - if ($hushizhang) { - $query->whereIn('bed_id', $bedList); - } }); } + // 判断是否护士长 + $userId = auth()->id(); + $roleId = Role::where('name', 'like', '%护士长%')->where('guard_name', 'admin')->value('id'); + $hushizhang = DB::table('model_has_roles')->where('role_id', $roleId) + ->where('model_type', 'App\Admin')->where('model_id', $userId)->count(); + if ($hushizhang) { + $user = auth()->user(); + $areaId = AdminAreaLink::where('project_id', $project_id)->where('admin_id', $user->id)->pluck('area_id'); + $bedList = Bed::whereIn('area_id', $areaId)->pluck('id'); + $this->model = $this->model->whereIn('bed_id', $bedList); + } + if ($request->date) { $this->model = $this->model->whereHas("orderItems", function ($query) use ($month, $request) { $query->where("service_date", $month . "-" . $request->date); From bb908105e777c360eb29162878783058750ab4ca Mon Sep 17 00:00:00 2001 From: liyinglin Date: Fri, 10 Nov 2023 16:32:49 +0800 Subject: [PATCH 3/3] 1 --- .../Admin/StatisticsController.php | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Admin/StatisticsController.php b/app/Http/Controllers/Admin/StatisticsController.php index 2139b2e..a429ae0 100755 --- a/app/Http/Controllers/Admin/StatisticsController.php +++ b/app/Http/Controllers/Admin/StatisticsController.php @@ -11,7 +11,9 @@ namespace App\Http\Controllers\Admin; use App\Customer; use App\Libs\AlipayF2F; use App\Libs\WxMicroPay; +use App\Models\AdminAreaLink; use App\Models\Balance; +use App\Models\Bed; use App\Models\Factor; use App\Models\FactorItems; use App\Models\OrderItems; @@ -24,6 +26,7 @@ use App\Models\Refund; use Carbon\Carbon; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; +use Spatie\Permission\Models\Role; class StatisticsController extends CommonController { @@ -34,7 +37,7 @@ class StatisticsController extends CommonController public function _checkProjects() { - $projects = (new Project())->adminProject()->orderBy("id","desc")->get(); + $projects = (new Project())->adminProject()->orderBy("id", "desc")->get(); view()->share(compact("projects")); return $projects; } @@ -234,7 +237,27 @@ class StatisticsController extends CommonController $month = request()->month ?? date("Y-m"); $months = $this->_getMonths(); + + // 判断是否护士长 + $userId = auth()->id(); + $roleId = Role::where('name', 'like', '%护士长%')->where('guard_name', 'admin')->value('id'); + $hushizhang = DB::table('model_has_roles')->where('role_id', $roleId) + ->where('model_type', 'App\Admin') + ->where('model_id', $userId) + ->count(); + // 获取这个护士长病区的订单 + $user = auth()->user(); + $areaId = AdminAreaLink::where('project_id', $project_id)->where('admin_id', $user->id)->pluck('area_id'); + $bedList = Bed::whereIn('area_id', $areaId)->pluck('id'); + $orderIds = Orders::whereIn('bed_id', $bedList)->pluck('id'); + + $recharges = Recharge::with(["manager", "order", "patient"]) + ->where(function ($query) use ($hushizhang, $orderIds) { + if ($hushizhang) { + $query->whereIn('order_id', $orderIds); + } + }) ->withCount("refunds") ->whereNotNull("paid_at") ->whereRaw("DATE_FORMAT(`paid_at`,'%Y-%m') = '{$month}'") @@ -242,7 +265,13 @@ class StatisticsController extends CommonController $query->where("project_id", $project_id); }) ->get(); + $refunds = Refund::whereNotNull("paid_at") + ->where(function ($query) use ($hushizhang, $orderIds) { + if ($hushizhang) { + $query->whereIn('order_id', $orderIds); + } + }) ->whereRaw("DATE_FORMAT(`paid_at`,'%Y-%m') = '{$month}'") ->whereHas("order", function ($query) use ($project_id) { $query->where("project_id", $project_id);