public function index() { $classes = StudyClass::all(); $teacher_ids = array(); $assist_ids = array(); foreach ($classes as $class) { if ($class->teach != null) { $teacher_ids[] = $class->teach->id; } if ($class->assist != null) { $assist_ids[] = $class->assist->id; } } $teachers = User::whereIn('id', $teacher_ids)->get(); foreach ($teachers as &$teacher) { $class_ids = array(); foreach ($teacher->teach as $t) { $class_ids[] = $t->id; } $teacher->rating_number = Register::whereIn('class_id', $class_ids)->where('rating_teacher', '>', -1)->count(); $teacher->rating_avg = Register::whereIn('class_id', $class_ids)->where('rating_teacher', '>', -1)->avg('rating_teacher'); } $assistants = User::whereIn('id', $assist_ids)->get(); foreach ($assistants as &$assistant) { $class_ids = array(); foreach ($assistant->assist as $t) { $class_ids[] = $t->id; } $assistant->rating_number = Register::whereIn('class_id', $class_ids)->where('rating_ta', '>', -1)->count(); $assistant->rating_avg = Register::whereIn('class_id', $class_ids)->where('rating_ta', '>', -1)->avg('rating_ta'); } $this->data['teachers'] = $teachers; $this->data['assistants'] = $assistants; return view('manage.personal_rating.all', $this->data); }
public function scopeGetTotalCalled($scope) { $current_gen = Gen::getCurrentGen(); $classes = StudyClass::where('gen_id', $current_gen->id)->get(); $class_id_list = $classes->pluck('id')->all(); $count = Register::whereIn('class_id', $class_id_list)->select('user_id')->where('call_status', 1)->groupBy('user_id')->get()->count(); return $count; }
public function registerlist(Request $request, $page = 1) { $query = $request->q; $this->data['current_page'] = $page; $limit = 40; $offset = ($page - 1) * $limit; $this->data['current_tab'] = 5; $gen_ids = Gen::orderBy('start_time', 'desc')->limit(4)->get()->pluck('id')->toArray(); // $classes = StudyClass::getClassByGen($current_gen->id); if ($query) { $users_id = User::where('email', 'like', '%' . $query . '%')->orWhere('name', 'like', '%' . $query . '%')->get()->pluck('id')->toArray(); // dd($users_id); $registers = Register::whereIn('user_id', $users_id)->whereIn('gen_id', $gen_ids)->orderBy('created_at', 'desc'); $total = $registers->count(); $registers = $registers->skip($offset)->take($limit)->get(); } else { $registers = Register::whereIn('gen_id', $gen_ids)->orderBy('created_at', 'desc')->skip($offset)->take($limit)->get(); $total = Register::whereIn('gen_id', $gen_ids)->count(); } if (!is_numeric($total)) { $total = 0; } $num_pages = ceil($total / $limit); $this->data['num_pages'] = $num_pages; $this->data['total'] = $total; $this->data['query'] = $query; $this->data['registers'] = $registers; return view('manage.register_list', $this->data); }