diff --git a/app/Http/Controllers/Admin/OtherController.php b/app/Http/Controllers/Admin/OtherController.php index 0155a3e..fa52e88 100755 --- a/app/Http/Controllers/Admin/OtherController.php +++ b/app/Http/Controllers/Admin/OtherController.php @@ -564,18 +564,57 @@ class OtherController extends CommonController break; case 'company_market_total': - // 上市公司明细 - 所有上市公司 + // 上市公司明细 - 所有上市公司,关联学员、课程信息 $companies = Company::companyMarket($start_date, $end_date, true); + // 加载关联关系 + $companies->load(['users.courseSigns.course.typeDetail']); + foreach ($companies as $company) { - $data[] = [ - 'company_name' => $company->company_name, - 'company_legal_representative' => $company->company_legal_representative ?? '', - 'company_date' => $company->company_date ?? '', - 'stock_date' => $company->stock_date ?? '', - 'company_address' => $company->company_address ?? '', - 'company_city' => $company->company_city ?? '', - 'company_area' => $company->company_area ?? '', - ]; + // 获取该公司在时间范围内的学员报名记录 + $courseSigns = CourseSign::whereHas('user', function ($query) use ($company) { + $query->where('company_id', $company->id); + })->whereDate('created_at', '>=', $start_date) + ->whereDate('created_at', '<=', $end_date) + ->whereNotIn('status', [4, 5]) + ->where(function ($query) use ($course_ids) { + if ($course_ids->isNotEmpty()) { + $query->whereIn('course_id', $course_ids); + } + }) + ->with(['user', 'course.typeDetail']) + ->get(); + + if ($courseSigns->isEmpty()) { + // 如果没有学员报名记录,仍然导出公司基本信息 + $data[] = [ + 'company_name' => $company->company_name, + 'company_legal_representative' => $company->company_legal_representative ?? '', + 'company_date' => $company->company_date ?? '', + 'stock_date' => $company->stock_date ?? '', + 'company_address' => $company->company_address ?? '', + 'company_city' => $company->company_city ?? '', + 'company_area' => $company->company_area ?? '', + 'user_name' => '', + 'course_name' => '', + 'course_type' => '', + ]; + } else { + // 每个学员-课程组合一行 + foreach ($courseSigns as $courseSign) { + $data[] = [ + 'company_name' => $company->company_name, + 'company_legal_representative' => $company->company_legal_representative ?? '', + 'company_date' => $company->company_date ?? '', + 'stock_date' => $company->stock_date ?? '', + 'company_address' => $company->company_address ?? '', + 'company_city' => $company->company_city ?? '', + 'company_area' => $company->company_area ?? '', + 'user_name' => $courseSign->user->name ?? '', + 'course_name' => $courseSign->course->name ?? '', + 'course_type' => $courseSign->course->typeDetail->name ?? '', + ]; + } + } } $fields = [ 'company_name' => '企业名称', @@ -583,8 +622,11 @@ class OtherController extends CommonController 'company_date' => '成立时间', 'stock_date' => '上市日期', 'company_address' => '地址', - 'company_city' => '营业范围', - 'company_area' => '联系电话', + 'company_city' => '所在城市', + 'company_area' => '所在区域', + 'user_name' => '学员姓名', + 'course_name' => '课程名称', + 'course_type' => '课程类型', ]; $filename = '上市公司明细'; break;