diff --git a/app/Http/Controllers/Admin/OtherController.php b/app/Http/Controllers/Admin/OtherController.php index 69d28fd..da11ac0 100755 --- a/app/Http/Controllers/Admin/OtherController.php +++ b/app/Http/Controllers/Admin/OtherController.php @@ -166,7 +166,8 @@ class OtherController extends CommonController // 培养人数 'course_type_signs_pass' => CourseSign::courseSignsTotal($start_date, $end_date, 1, $courses2->pluck('id')), // 去重培养人数 - 'course_type_signs_pass_unique' => CourseSign::courseSignsTotalByUnique($start_date, $end_date, 1, $courses2->pluck('id')), + 'course_type_signs_pass_unique' => CourseSign::courseSignsTotalByUnique($start_date, $end_date, 1, $courses2->pluck('id'), null, $userIds), + 'user_ids' => $userIds, 'course_name' => $course->name, 'course_signs_pass' => CourseSign::courseSignsTotal($start_date, $end_date, 1, [$course->id]), ]; @@ -176,7 +177,8 @@ class OtherController extends CommonController $areas = ParameterDetail::where('parameter_id', 5)->get(); foreach ($areas as $area) { $area->course_signs_pass = CourseSign::courseSignsTotal($start_date, $end_date, 1, $courses->pluck('id'), $area->value); - $area->course_signs_pass_unique = CourseSign::courseSignsTotalByUnique($start_date, $end_date, 1, $courses->pluck('id'), $area->value); + $area->course_signs_pass_unique = CourseSign::courseSignsTotalByUnique($start_date, $end_date, 1, $courses->pluck('id'), $area->value, $userIds); + $area->user_ids = $userIds; } $area_course_signs_pass_total = collect($areas)->sum('course_signs_pass'); $area_course_signs_pass_unique_total = collect($areas)->sum('course_signs_pass_unique'); diff --git a/app/Models/CourseSign.php b/app/Models/CourseSign.php index f564a82..f1efdae 100755 --- a/app/Models/CourseSign.php +++ b/app/Models/CourseSign.php @@ -106,7 +106,7 @@ class CourseSign extends SoftDeletesModel /** * 指定时间内的报名信息(去重) */ - public static function courseSignsTotalByUnique($start_date, $end_date, $status = null, $course_ids = null, $area = null) + public static function courseSignsTotalByUnique($start_date, $end_date, $status = null, $course_ids = null, $area = null, &$userIds) { $courseSignByType = CourseSign::whereDate('created_at', '>=', $start_date) ->whereDate('created_at', '<=', $end_date) @@ -128,6 +128,7 @@ class CourseSign extends SoftDeletesModel } })->whereNotIn('status', [4, 5]) ->get(); + $userIds = $courseSignByType->pluck('user_id')->toArray(); return User::whereIn('id', $courseSignByType->pluck('user_id'))->distinct('mobile')->count(); }