master
cody 1 week ago
parent b560f0b603
commit 01e2e97ce0

@ -230,20 +230,30 @@ class OtherController extends CommonController
// 审核通过人数去重 // 审核通过人数去重
$list['course_signs_pass_unique'] = CourseSign::courseSignsTotalByUnique($start_date, $end_date, 1, $courses->pluck('id'), null); $list['course_signs_pass_unique'] = CourseSign::courseSignsTotalByUnique($start_date, $end_date, 1, $courses->pluck('id'), null);
// 开课场次 // 开课场次
// 开课场次
$calendar = Calendar::where(function ($query) use ($start_date, $end_date) { $calendar = Calendar::where(function ($query) use ($start_date, $end_date) {
$query->whereBetween('start_time', [$start_date, $end_date]) $query->whereBetween('start_time1', [$start_date, $end_date])
->orWhereBetween('end_time', [$start_date, $end_date]); ->orWhereBetween('end_time', [$start_date, $end_date]);
})->where(function ($query) use ($course_type_id, $courses) { })->where(function ($query) use ($course_type_id) {
// 条件1有 course_id 的数据,通过 course.type 匹配课程体系 // 条件1有 course_id 的数据,通过 course.type 匹配课程体系
// 条件2没有 course_id 的数据,直接用 course_type_id 字段匹配 // 条件2没有 course_id 的数据,直接用 course_type_id 字段匹配
// 两个条件是或关系 // 两个条件是或关系
if ($courses->count()) {
$query->whereIn('course_id', $courses->pluck('id'));
}
if ($course_type_id) { if ($course_type_id) {
$query->orWhere('course_type_id', $course_type_id); $course_type_id_array = is_array($course_type_id) ? $course_type_id : explode(',', $course_type_id);
// 条件1有 course_id 时,通过关联的 course.type 匹配
$query->where(function ($q) use ($course_type_id_array) {
$q->whereHas('course', function ($subQ) use ($course_type_id_array) {
$subQ->whereIn('type', $course_type_id_array);
});
});
// 条件2没有 course_id 时,直接用 course_type_id 字段匹配(或关系)
$query->orWhere(function ($q) use ($course_type_id_array) {
$q->whereIn('course_type_id', $course_type_id_array);
});
} }
})->get(); })->get();
$list['course_total'] = (clone $calendar)->count(); $list['course_total'] = (clone $calendar)->count();

Loading…
Cancel
Save