/** * Execute the console command. * * @return mixed */ public function handle() { $sessions = ClassroomSession::select('id', 'classroom_id')->whereIn('classroom_id', [157, 168, 176, 186, 198, 213, 217])->get(); // $this->comment(PHP_EOL.$sessions->count().PHP_EOL); foreach ($sessions as $session) { $students = ClassroomStudent::select('student_id')->where('student_id', 1841)->where('classroom_id', $session->classroom_id)->get(); // $this->comment(PHP_EOL.$students->count().PHP_EOL); foreach ($students as $student) { $exist = StudentClassroomSession::where('classroom_session_id', $session->id)->where('student_id', $student->student_id)->value('id'); if ($exist) { $this->comment(PHP_EOL . ' HAS ' . $exist . PHP_EOL); } else { $data = ['student_id' => $student->student_id, 'attendee_id' => $student->student_id, 'classroom_session_id' => $session->id, 'student_link' => '', 'semester_id' => 9]; $attendance = ['entry_time' => null, 'exit_time' => null, 'attended_minutes' => null, 'teacher_id' => null, 'classroom_session_id' => $session->id, 'student_id' => $student->id, 'valid' => 0, 'manual' => 0]; StudentClassroomSession::create($data); ClassroomSessionAttendance::create($attendance); $this->comment(PHP_EOL . ' NOT ' . PHP_EOL); } } } // Student::with('classrooms', 'subjects')->has('classrooms', '=', 3)->leftJoin('subject_sub') exit; \DB::connection()->enableQueryLog(); Exam::select('exams.type', 'exams.start_at', 'exams.finish_at', 'exams.name', 'exams.id')->join('subject_subjects as subsub', 'subsub.id', '=', 'exams.subject_id')->join('student_subjects as stusub', function ($j) { $j->on('stusub.subject_id', '=', 'subsub.id')->where('stusub.student_id', '=', 10001)->where('stusub.state', '=', 'study'); })->where(function ($query) { $query->orWhereIn('exams.type', ['midterm', 'remidterm', 'activity'])->orWhereRaw('exams.id IN (SELECT ce.exam_id FROM classrooms_exam as ce JOIN classrooms as c ON c.id = ce.classroom_id JOIN classroom_students as cs ON cs.classroom_id = c.id AND cs.student_id = 10001 WHERE exam_id = exams.id GROUP BY ce.id)'); // if ($request->has('finalExam') == 'true') { // $query->orWhereIn('exams.type', // [ // 'final', // 'summer', // 'refinal' // ]); // } })->where('exams.semester_id', 9)->where('finish_at', '>=', date('Y-m-d H:i:s'))->groupBy('exams.id')->orderBy('exams.start_at', 'ASC')->get(); // Exam::count(); $query = \DB::getQueryLog(); $lastQuery = end($query); var_dump($lastQuery); // echo "done"; exit; // $sessions = ClassroomSession::select('id')->whereIn('interval_id', [2,14,15])->get(); // foreach ($sessions as $session) { // ClassroomSessionAttendance::where('classroom_session_id', $session->id)->update(['valid' => 1]); // } }
/** * Execute the console command. * * @return mixed */ public function handle() { $this->comment(PHP_EOL . 'adding' . PHP_EOL); $sessions = ClassroomSession::select('classroom_sessions.wiziq_id', 'classroom_sessions.id', 'classroom_sessions.classroom_id')->whereDate('classroom_sessions.start_at', '>', date('Y-m-d'))->with(['classroom' => function ($query) { return $query->select('classrooms.id'); }, 'classroom.students' => function ($query) { return $query->select('students.id', 'students.name'); }, 'studentsSessions' => function ($query) { return $query->select('student_id', 'classroom_session_id'); }])->get(); foreach ($sessions as $session) { $classroomId = $session->wiziq_id; $error = 0; $WiziqApi = new WiziqApi(); // var_dump($session->classroom->students->count()); foreach ($session->classroom->students as $student) { $exist = $session->studentsSessions->filter(function ($value) use($student) { return $value->student_id == $student->id; }); if ($exist->count()) { continue; } $this->comment(PHP_EOL . ' not exist ' . PHP_EOL); try { $attendees = Attendees::build()->add($student->id, $student->name, 'ar-SA'); // add more if needed $response = $WiziqApi->addAttendeesToClass($classroomId, $attendees); $data = ['student_link' => $response[0]['url'], 'attendee_id' => $response[0]['id'], 'classroom_session_id' => $session->id, 'student_id' => $student->id, 'semester_id' => semester()->id]; StudentClassroomSession::create($data); } catch (\mikemix\Wiziq\Common\Api\Exception\CallException $e) { $this->comment(PHP_EOL . ' call exception ' . PHP_EOL); $error = 1; } catch (\mikemix\Wiziq\Common\Http\Exception\InvalidResponseException $e) { $this->comment(PHP_EOL . ' invalid response exception ' . PHP_EOL); $error = 1; } catch (\ErrorException $e) { $this->comment(PHP_EOL . ' error exception ' . PHP_EOL); $error = 1; } } } $this->comment(PHP_EOL . 'added' . PHP_EOL); }
public function index(Request $request) { $sessions = StudentClassroomSession::select('csa.valid as attended', 'cs.subject_subject_id as subject_id', 'scs.student_link', 'scs.id', 'cse.status as excuseStatus', 'cs.start_at', 'scs.classroom_session_id')->with(['classroomSession', 'classroomSession.interval' => function ($query) { $query->select('enable_excuses', 'enable_attendances', 'title', 'id'); }, 'classroomSession.subject' => function ($query) { return $query->select('id', 'name'); }])->join('classroom_sessions as cs', 'cs.id', '=', 'scs.classroom_session_id')->join('student_subjects as ss', function ($join) { $join->on('ss.subject_id', '=', 'cs.subject_subject_id')->where('ss.state', '=', 'study')->where('ss.student_id', '=', $this->student->id); })->join('classroom_students as clst', function ($query) { return $query->on('clst.classroom_id', '=', 'cs.classroom_id')->where('clst.student_id', '=', $this->student->id); })->from('student_classroom_sessions as scs')->leftJoin('classroom_session_attendances as csa', function ($query) { $query->on('csa.classroom_session_id', '=', 'scs.classroom_session_id')->where('csa.student_id', '=', $this->student->id); })->leftJoin('classroom_session_excuses as cse', function ($query) { $query->on('cse.session_id', '=', 'scs.classroom_session_id')->where('cse.student_id', '=', $this->student->id)->where('cse.semester_id', '=', $this->semester->id); })->where('scs.student_id', $this->student->id)->orderBy('start_at', 'ASC')->groupBy('scs.id')->get(); // if($request->has('ps')) { foreach ($sessions as $session) { $session->classroomSession->recording_link = str_replace('http', 'https', $session->classroomSession->recording_link); $session->student_link = str_replace('http', 'https', $session->student_link); } // } // Cache::put('student_'.$this->student->id.'_api_sessions', $sessions, 300); return response()->json($sessions, 200, [], JSON_NUMERIC_CHECK); }
private function createStudentsSessions($students, $session) { $classroomId = $session->wiziq_id; $error = 0; $WiziqApi = new WiziqApi(); //Log::info("adding attendeees"); foreach ($students as $student) { try { $attendees = Attendees::build()->add($student->id, $student->name, 'ar-SA'); // add more if needed //Log::info("added attendees"); $response = $WiziqApi->addAttendeesToClass($classroomId, $attendees); //Log::info($response); $data = ['student_link' => $response[0]['url'], 'attendee_id' => $response[0]['id'], 'classroom_session_id' => $session->id, 'student_id' => $student->id, 'semester_id' => semester()->id]; //Log::info($data); StudentClassroomSession::create($data); //Log::info(var_dump($response)); } catch (\mikemix\Wiziq\Common\Api\Exception\CallException $e) { // Log::warning($e->getMessage()); $error = 1; } catch (\mikemix\Wiziq\Common\Http\Exception\InvalidResponseException $e) { // Log::warning($e->getMessage()); $error = 1; } catch (\ErrorException $e) { $error = 1; } } return $error; }