From 98ce786f084c0e47544af51ce7c1de72e846aa80 Mon Sep 17 00:00:00 2001 From: cody <648753004@qq.com> Date: Thu, 15 Jan 2026 14:28:46 +0800 Subject: [PATCH] update --- .../Controllers/Admin/OtherController.php | 56 ++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Admin/OtherController.php b/app/Http/Controllers/Admin/OtherController.php index 4048739..2e7b31d 100755 --- a/app/Http/Controllers/Admin/OtherController.php +++ b/app/Http/Controllers/Admin/OtherController.php @@ -1600,10 +1600,58 @@ class OtherController extends CommonController case 'cover_rencai_total': // 高层次人才明细 - 使用模型方法 - $users = CourseSign::rencai($start_date, $end_date, $course_ids, true); + // 确保 $course_ids 是数组格式 + $courseIdsArray = $course_ids ? (is_array($course_ids) ? $course_ids : $course_ids->toArray()) : null; + $users = CourseSign::rencai($start_date, $end_date, $courseIdsArray, true); // 加载关联关系 $users->load('company'); + + // 获取所有用户的课程报名记录(使用与rencai相同的筛选条件) + $userIds = $users->pluck('id')->toArray(); + $userCourseSigns = CourseSign::getStudentList($start_date, $end_date, 1, $courseIdsArray) + ->whereIn('user_id', $userIds) + ->with(['user', 'course.typeDetail']) + ->get(); + + // 按用户ID分组课程报名记录 + $userCourseSignsMap = []; + foreach ($userCourseSigns as $sign) { + if (!$sign->user) { + continue; + } + $userId = $sign->user_id; + if (!isset($userCourseSignsMap[$userId])) { + $userCourseSignsMap[$userId] = []; + } + $userCourseSignsMap[$userId][] = $sign; + } + foreach ($users as $user) { + // 获取该用户的课程报名记录 + $courseSigns = collect($userCourseSignsMap[$user->id] ?? []); + + if ($courseSigns->isEmpty()) { + // 如果没有课程报名记录,设置空值 + $courseNamesStr = ''; + $courseTypesStr = ''; + $totalCourseCount = 0; + } else { + // 收集课程名称 + $courseNames = $courseSigns->pluck('course.name')->filter()->unique()->values()->toArray(); + $courseNamesStr = implode('、', array_filter($courseNames)); + + // 收集课程体系 + $courseTypes = $courseSigns->pluck('course.typeDetail.name') + ->filter() + ->unique() + ->values() + ->toArray(); + $courseTypesStr = implode('、', array_filter($courseTypes)); + + // 统计报名课程数 + $totalCourseCount = $courseSigns->count(); + } + $data[] = [ 'user_name' => $user->name ?? '', 'mobile' => $user->mobile ?? '', @@ -1612,6 +1660,9 @@ class OtherController extends CommonController 'company_city' => $user->company->company_city ?? '', 'company_position' => $user->company_position ?? '', 'education' => $user->education ?? '', + 'course_names' => $courseNamesStr, + 'course_types' => $courseTypesStr, + 'course_count' => $totalCourseCount, ]; } $fields = [ @@ -1622,6 +1673,9 @@ class OtherController extends CommonController 'company_city' => '所在城市', 'company_position' => '职位', 'education' => '学历', + 'course_names' => '课程名称', + 'course_types' => '课程体系', + 'course_count' => '报名课程数', ]; $filename = '高层次人才明细'; break;