diff --git a/app/Http/Controllers/Admin/OtherController.php b/app/Http/Controllers/Admin/OtherController.php index 436ef31..3686ebd 100755 --- a/app/Http/Controllers/Admin/OtherController.php +++ b/app/Http/Controllers/Admin/OtherController.php @@ -461,12 +461,27 @@ class OtherController extends CommonController // 直接通过公司ID查询学员 $userIds = User::where('company_id', $company->id)->pluck('id')->toArray(); + // 公司基本信息 + $companyInfo = [ + 'company_name' => $company->company_name, + 'company_legal_representative' => $company->company_legal_representative ?? '', + 'company_date' => $company->company_date ?? '', + 'company_address' => $company->company_address ?? '', + 'business_scope' => $company->business_scope ?? '', + 'contact_phone' => $company->contact_phone ?? '', + 'contact_mail' => $company->contact_mail ?? '', + 'company_tag' => $company->company_tag ?? '', + 'credit_code' => ' ' . $company->credit_code ?? '', + ]; + if (empty($userIds)) { - // 如果没有学员,设置空值 - $userNamesStr = ''; - $courseNamesStr = ''; - $courseTypesStr = ''; - $totalCourseCount = 0; + // 如果没有学员,仍然导出公司基本信息 + $data[] = array_merge($companyInfo, [ + 'user_name' => '', + 'course_names' => '', + 'course_types' => '', + 'course_count' => 0, + ]); } else { $userCourseSigns = CourseSign::getStudentList(CourseType::START_DATE, $end_date, 1, $courseIdsArray) ->whereIn('user_id', $userIds) @@ -489,57 +504,35 @@ class OtherController extends CommonController $usersData[$userId]['courseSigns'][] = $sign; } - // 收集所有学员的姓名、课程名称、课程体系 - $userNames = []; - $allCourseNames = []; - $allCourseTypes = []; - $totalCourseCount = 0; - + // 每个学员一行,每行都显示完整的公司信息 foreach ($usersData as $userData) { $user = $userData['user']; $courseSigns = collect($userData['courseSigns']); if ($courseSigns->isNotEmpty()) { - $userNames[] = $user->name ?? ''; - - // 收集课程名称 - $courseNames = $courseSigns->pluck('course.name')->filter()->unique()->values()->toArray(); - $allCourseNames = array_merge($allCourseNames, $courseNames); + // 获取课程名称列表,用中文顿号分隔 + $courseNames = $courseSigns->pluck('course.name')->filter()->unique()->values()->implode('、'); - // 收集课程体系 + // 获取课程体系列表,用中文顿号分隔 $courseTypes = $courseSigns->pluck('course.typeDetail.name') ->filter() ->unique() ->values() - ->toArray(); - $allCourseTypes = array_merge($allCourseTypes, $courseTypes); + ->implode('、'); + + // 报名课程数 + $courseCount = $courseSigns->count(); - // 累计报名课程数 - $totalCourseCount += $courseSigns->count(); + // 每个学员一行,每行都显示完整的公司信息 + $data[] = array_merge($companyInfo, [ + 'user_name' => $user->name ?? '', + 'course_names' => $courseNames, + 'course_types' => $courseTypes, + 'course_count' => $courseCount, + ]); } } - - // 去重并合并 - $userNamesStr = implode('、', array_filter(array_unique($userNames))); - $courseNamesStr = implode('、', array_filter(array_unique($allCourseNames))); - $courseTypesStr = implode('、', array_filter(array_unique($allCourseTypes))); } - - $data[] = [ - 'company_name' => $company->company_name, - 'company_legal_representative' => $company->company_legal_representative ?? '', - 'company_date' => $company->company_date ?? '', - 'company_address' => $company->company_address ?? '', - 'business_scope' => $company->business_scope ?? '', - 'contact_phone' => $company->contact_phone ?? '', - 'contact_mail' => $company->contact_mail ?? '', - 'company_tag' => $company->company_tag ?? '', - 'credit_code' => ' ' . $company->credit_code ?? '', - 'user_names' => $userNamesStr, - 'course_names' => $courseNamesStr, - 'course_types' => $courseTypesStr, - 'course_count' => $totalCourseCount, - ]; } $fields = [ 'company_name' => '企业名称', @@ -551,7 +544,7 @@ class OtherController extends CommonController 'contact_mail' => '联系邮箱', 'company_tag' => '企业资质', 'credit_code' => '统一社会信用代码', - 'user_names' => '学员姓名', + 'user_name' => '学员姓名', 'course_names' => '课程名称', 'course_types' => '课程体系', 'course_count' => '报名课程数',