From 5d04f3dbf6dd3263f6ba8c996457cc9b67a95810 Mon Sep 17 00:00:00 2001 From: cody <648753004@qq.com> Date: Thu, 13 Nov 2025 13:41:44 +0800 Subject: [PATCH] update --- .../Controllers/Admin/OtherController.php | 21 ++++++++++++------- app/Models/CourseSign.php | 16 ++++++++++---- 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/app/Http/Controllers/Admin/OtherController.php b/app/Http/Controllers/Admin/OtherController.php index cccfe54..01628b6 100755 --- a/app/Http/Controllers/Admin/OtherController.php +++ b/app/Http/Controllers/Admin/OtherController.php @@ -176,14 +176,19 @@ class OtherController extends CommonController // 区域明细统计 $areas = ParameterDetail::where('parameter_id', 5)->get(); foreach ($areas as $area) { - $courseSignByArea = CourseSign::where('status', 1) - ->whereHas('user', function ($query) use ($area) { - $query->where('company_area', $area->value); - })->whereDate('created_at', '>=', $start_date) - ->whereDate('created_at', '<=', $end_date) - ->get(); - $area->course_signs_pass = $courseSignByArea->count(); - $area->course_signs_pass_unique = User::whereIn('id', $courseSignByArea->pluck('user_id'))->distinct('mobile')->count(); +// $courseSignByArea = CourseSign::where('status', 1) +// ->whereHas('user', function ($query) use ($area) { +// $query->where('company_area', $area->value); +// })->whereDate('created_at', '>=', $start_date) +// ->whereDate('created_at', '<=', $end_date) +// ->get(); + + $area->course_signs_pass = CourseSign::courseSignsTotal($start_date, $end_date, 1, null,$area->value); + $area->course_signs_pass_unique = CourseSign::courseSignsTotalByUnique($start_date, $end_date, 1, null,$area->value); + + // $area->course_signs_pass = $courseSignByArea->count(); + // $area->course_signs_pass_unique = User::whereIn('id', $courseSignByArea->pluck('user_id'))->distinct('mobile')->count(); + } return $this->success(compact('list', 'courseTypesSum', 'areas')); } diff --git a/app/Models/CourseSign.php b/app/Models/CourseSign.php index cd4c156..05df430 100755 --- a/app/Models/CourseSign.php +++ b/app/Models/CourseSign.php @@ -77,11 +77,15 @@ class CourseSign extends SoftDeletesModel /** * 指定时间内的报名信息(未去重) */ - public static function courseSignsTotal($start_date, $end_date, $status = null, $course_ids = null) + public static function courseSignsTotal($start_date, $end_date, $status = null, $course_ids = null, $area = null) { $total = CourseSign::whereDate('created_at', '>=', $start_date) ->whereDate('created_at', '<=', $end_date) - ->where(function ($query) use ($status, $course_ids) { + ->whereHas('user', function ($query) use ($area) { + if ($area) { + $query->where('company_area', $area); + } + })->where(function ($query) use ($status, $course_ids) { if (isset($status)) { $query->where('status', $status); } @@ -96,11 +100,15 @@ class CourseSign extends SoftDeletesModel /** * 指定时间内的报名信息(去重) */ - public static function courseSignsTotalByUnique($start_date, $end_date, $status = null, $course_ids = null) + public static function courseSignsTotalByUnique($start_date, $end_date, $status = null, $course_ids = null, $area = null) { $courseSignByType = CourseSign::whereDate('created_at', '>=', $start_date) ->whereDate('created_at', '<=', $end_date) - ->where(function ($query) use ($status, $course_ids) { + ->whereHas('user', function ($query) use ($area) { + if ($area) { + $query->where('company_area', $area); + } + })->where(function ($query) use ($status, $course_ids) { if (isset($status)) { $query->where('status', $status); }