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);