diff --git a/app/Http/Controllers/Admin/OtherController.php b/app/Http/Controllers/Admin/OtherController.php index f651cab..2d76638 100755 --- a/app/Http/Controllers/Admin/OtherController.php +++ b/app/Http/Controllers/Admin/OtherController.php @@ -233,13 +233,31 @@ class OtherController extends CommonController $calendar = Calendar::where(function ($query) use ($start_date, $end_date) { $query->whereBetween('start_time', [$start_date, $end_date]) ->orWhereBetween('end_time', [$start_date, $end_date]); - })->where(function ($query) { - $course_type_id = request('course_type_id'); + })->where(function ($query) use ($course_type_id, $courses) { + // course_type_id 和 course id 是或关系,满足其中一个就行 + $hasCondition = false; + + // 条件1:course_type_id 筛选 if ($course_type_id) { - $course_type_id = explode(',', $course_type_id); - $query->whereIn('course_type_id', $course_type_id); + $course_type_id_array = is_array($course_type_id) ? $course_type_id : explode(',', $course_type_id); + $query->whereIn('course_type_id', $course_type_id_array); + $hasCondition = true; } - }); + + // 条件2:course id 筛选(或关系) + if ($courses && $courses->count() > 0) { + if ($hasCondition) { + $query->orWhereHas('course', function ($q) use ($courses) { + $q->whereIn('id', $courses->pluck('id')); + }); + } else { + $query->whereHas('course', function ($q) use ($courses) { + $q->whereIn('id', $courses->pluck('id')); + }); + } + } + })->get(); + $list['course_total'] = (clone $calendar)->count(); // 开课天数 $list['course_day_total'] = (clone $calendar)->where('is_count_days', 1)->sum('days');