master
cody 3 months ago
parent 24c2db6784
commit f8b1d86108

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

Loading…
Cancel
Save