master
cody 2 weeks ago
parent c28d952207
commit c79d2dd74a

@ -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;

Loading…
Cancel
Save