feat: update CourseClass and CourseRegistration services; refine select queries to improve data retrieval efficiency
This commit is contained in:
parent
609828a2e2
commit
66bacaf0e1
@ -108,7 +108,6 @@ public function duplicateFromTerm(int $sourceAcademicTermId, int $targetAcademic
|
|||||||
public function getAllForSelect(?User $user = null): Collection
|
public function getAllForSelect(?User $user = null): Collection
|
||||||
{
|
{
|
||||||
return CourseClass::query()
|
return CourseClass::query()
|
||||||
->select(['course_classes.id', 'course_classes.course_id', 'course_classes.lecturer_id', 'course_classes.academic_term_id'])
|
|
||||||
->join('courses', 'courses.id', '=', 'course_classes.course_id')
|
->join('courses', 'courses.id', '=', 'course_classes.course_id')
|
||||||
->join('departments', 'departments.id', '=', 'courses.department_id')
|
->join('departments', 'departments.id', '=', 'courses.department_id')
|
||||||
->with([
|
->with([
|
||||||
@ -120,6 +119,6 @@ public function getAllForSelect(?User $user = null): Collection
|
|||||||
->orderBy('departments.name')
|
->orderBy('departments.name')
|
||||||
->orderBy('courses.semester_number')
|
->orderBy('courses.semester_number')
|
||||||
->orderBy('courses.name')
|
->orderBy('courses.name')
|
||||||
->get();
|
->get(['course_classes.id', 'course_classes.course_id', 'course_classes.lecturer_id', 'course_classes.academic_term_id']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -33,7 +33,6 @@ public function paginated(User $user, int $perPage = 25, string $search = '', ?i
|
|||||||
$ledDepartmentIds = $isDepartmentLeader ? $user->ledDepartmentIds() : null;
|
$ledDepartmentIds = $isDepartmentLeader ? $user->ledDepartmentIds() : null;
|
||||||
|
|
||||||
$paginator = Student::query()
|
$paginator = Student::query()
|
||||||
->select(['students.id', 'students.user_id', 'students.student_number', 'students.department_id'])
|
|
||||||
->join('departments', 'departments.id', '=', 'students.department_id')
|
->join('departments', 'departments.id', '=', 'students.department_id')
|
||||||
->join('users', 'users.id', '=', 'students.user_id')
|
->join('users', 'users.id', '=', 'students.user_id')
|
||||||
->join('user_profiles', 'user_profiles.user_id', '=', 'users.id')
|
->join('user_profiles', 'user_profiles.user_id', '=', 'users.id')
|
||||||
@ -46,7 +45,7 @@ public function paginated(User $user, int $perPage = 25, string $search = '', ?i
|
|||||||
->with(['user.profile', 'department:id,name'])
|
->with(['user.profile', 'department:id,name'])
|
||||||
->orderBy('departments.name')
|
->orderBy('departments.name')
|
||||||
->orderBy('user_profiles.full_name')
|
->orderBy('user_profiles.full_name')
|
||||||
->paginate($perPage);
|
->paginate($perPage, ['students.id', 'students.user_id', 'students.student_number', 'students.department_id']);
|
||||||
|
|
||||||
return $paginator->through(fn (Student $student) => [
|
return $paginator->through(fn (Student $student) => [
|
||||||
'student_id' => $student->id,
|
'student_id' => $student->id,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user