From ce7dc9eecf5d00f341188b01326921a673140b9c Mon Sep 17 00:00:00 2001 From: cody <648753004@qq.com> Date: Tue, 20 Jan 2026 18:46:22 +0800 Subject: [PATCH] update --- app/Http/Controllers/Admin/OtherController.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Admin/OtherController.php b/app/Http/Controllers/Admin/OtherController.php index 11bf145..907b990 100755 --- a/app/Http/Controllers/Admin/OtherController.php +++ b/app/Http/Controllers/Admin/OtherController.php @@ -222,6 +222,9 @@ class OtherController extends CommonController return clone $item; }); + // 汇总本配置下全部 Course id,用于 course_signs_unique_total 与 courses-home 口径一致(courseSignsTotalByUnique) + $configCourseIds = collect(); + // 对每个 CourseType 进行统计 foreach ($courseTypes as $courseType) { // 历史课程数据(添加时间范围限制;仅统计 type 为 is_history=0 的,is_history=1 的由下方「与 courses-home 口径一致」块统计,避免重复) @@ -237,6 +240,7 @@ class OtherController extends CommonController $query->whereBetween('start_date', [$configStartDate, $configEndDate]) ->orWhereBetween('end_date', [$configStartDate, $configEndDate]); })->get(); + $configCourseIds = $configCourseIds->merge($courses->pluck('id')); // 历史课程期数 $courseType->history_course_periods_total = $historyCourse->count(); // 现在课程期数(添加时间范围限制) @@ -277,12 +281,14 @@ class OtherController extends CommonController // 将"其他"添加到 courseTypes 集合中 $courseTypes->push($otherCourseType); + $configCourseIds = $configCourseIds->merge(CourseType::getOtherCourseIds($configStartDate, $configEndDate)); + // 将统计数据直接组合到配置对象中 $config->courseTypes = $courseTypes; // 总期数(包含"其他") $config->course_periods_total = $courseTypes->sum('course_periods_total'); - // 总去重人数(包含"其他"),与 courseTypes 各项 course_signs_total 之和保持一致 - $config->course_signs_unique_total = $courseTypes->sum('course_signs_total'); + // 总去重人数(与 courses-home 的 course_signs_pass_unique 口径一致:courseSignsTotalByUnique) + $config->course_signs_unique_total = CourseSign::courseSignsTotalByUnique($configStartDate, $configEndDate, 1, $configCourseIds->unique()->values(), false); } return $this->success(compact('list', 'suzhou', 'country', 'monthCourses', 'time_axis', 'article', 'yearConfigs'));