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