/** * 选课时间冲突检测 * @author FuRongxin * @date 2016-03-02 * @version 2.0 * @param string $kcxh 12位课程序号 * @return array 冲突返回冲突的课程序号,否则返回空数组 */ public function checktime($kcxh) { $currents = Timetable::whereNd(session('year'))->whereXq(session('term'))->whereKcxh($kcxh)->get(); $selcourses = Selcourse::with('timetables')->whereNd(session('year'))->whereXq(session('term'))->whereXh(Auth::user()->xh)->get(); foreach ($currents as $current) { foreach ($selcourses as $selcourse) { foreach ($selcourse->timetables as $compare) { if ($current->zc == $compare->zc) { if ($current->ksj >= $compare->ksj && $current->ksj <= $compare->jsj) { if ($current->ksz >= $compare->ksz && $current->ksz <= $compare->jsz) { $conflicts[] = $compare['kcxh']; } } } } } } $conflicts = isset($conflicts) ? array_unique($conflicts) : []; return request()->ajax() ? response()->json($conflicts) : $conflicts; }