|
|
|
@ -1480,23 +1480,35 @@ class OtherController extends CommonController
|
|
|
|
// 确保 $course_ids 是数组格式
|
|
|
|
// 确保 $course_ids 是数组格式
|
|
|
|
$courseIdsArray = $course_ids ? (is_array($course_ids) ? $course_ids : $course_ids->toArray()) : null;
|
|
|
|
$courseIdsArray = $course_ids ? (is_array($course_ids) ? $course_ids : $course_ids->toArray()) : null;
|
|
|
|
$companies = CourseSign::toubuqiye($start_date, $end_date, $courseIdsArray, true);
|
|
|
|
$companies = CourseSign::toubuqiye($start_date, $end_date, $courseIdsArray, true);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 预先获取所有符合条件的课程报名记录(与toubuqiye方法逻辑一致)
|
|
|
|
|
|
|
|
$courseSignsQuery = CourseSign::getStudentList($start_date, $end_date, 1, $courseIdsArray);
|
|
|
|
|
|
|
|
$allCourseSigns = $courseSignsQuery->with(['user', 'course.typeDetail'])->get();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 按公司ID分组课程报名记录
|
|
|
|
|
|
|
|
$companyCourseSigns = [];
|
|
|
|
|
|
|
|
foreach ($allCourseSigns as $sign) {
|
|
|
|
|
|
|
|
if (!$sign->user || !$sign->user->company) {
|
|
|
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
$companyId = $sign->user->company->id;
|
|
|
|
|
|
|
|
if (!isset($companyCourseSigns[$companyId])) {
|
|
|
|
|
|
|
|
$companyCourseSigns[$companyId] = [];
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
$companyCourseSigns[$companyId][] = $sign;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
foreach ($companies as $company) {
|
|
|
|
foreach ($companies as $company) {
|
|
|
|
// 获取该公司的学员信息
|
|
|
|
// 获取该公司的学员信息(只包含有课程报名的学员)
|
|
|
|
// 使用与toubuqiye相同的筛选逻辑:status=1,筛选course_ids和日期范围
|
|
|
|
$userCourseSigns = collect($companyCourseSigns[$company->id] ?? []);
|
|
|
|
// 直接通过公司ID查询学员
|
|
|
|
|
|
|
|
$userIds = User::where('company_id', $company->id)->pluck('id')->toArray();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (empty($userIds)) {
|
|
|
|
if ($userCourseSigns->isEmpty()) {
|
|
|
|
// 如果没有学员,设置空值
|
|
|
|
// 如果没有学员,设置空值
|
|
|
|
$userNamesStr = '';
|
|
|
|
$userNamesStr = '';
|
|
|
|
$courseNamesStr = '';
|
|
|
|
$courseNamesStr = '';
|
|
|
|
$courseTypesStr = '';
|
|
|
|
$courseTypesStr = '';
|
|
|
|
$totalCourseCount = 0;
|
|
|
|
$totalCourseCount = 0;
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
$userCourseSigns = CourseSign::getStudentList($start_date, $end_date, 1, $courseIdsArray)
|
|
|
|
|
|
|
|
->whereIn('user_id', $userIds)
|
|
|
|
|
|
|
|
->with(['user', 'course.typeDetail'])
|
|
|
|
|
|
|
|
->get();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 按学员分组
|
|
|
|
// 按学员分组
|
|
|
|
$usersData = [];
|
|
|
|
$usersData = [];
|
|
|
|
|