master
cody 3 months ago
parent 957319909f
commit ce7dc9eecf

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

Loading…
Cancel
Save