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