From f8b1d8610853511c99aae45e7885d5c0cebaf442 Mon Sep 17 00:00:00 2001 From: cody <648753004@qq.com> Date: Thu, 15 Jan 2026 14:26:13 +0800 Subject: [PATCH] update --- .../Controllers/Admin/OtherController.php | 30 +++++++++++++------ 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/app/Http/Controllers/Admin/OtherController.php b/app/Http/Controllers/Admin/OtherController.php index 2561d03..4048739 100755 --- a/app/Http/Controllers/Admin/OtherController.php +++ b/app/Http/Controllers/Admin/OtherController.php @@ -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 = [];