status != 1) { throw new BusinessException('教师不存在或已禁用', 10101); } return $teacher->toArray(); } public function getTeachersByIds(array $ids): array { return Teacher::whereIn('id', $ids) ->enabled() ->orderBy('sort_order', 'asc') ->get() ->toArray(); } public function getTeachersByCampusId(int $campusId, int $page = 1, int $size = 20): array { $query = Teacher::campusId($campusId) ->enabled() ->orderBy('sort_order', 'asc'); $total = $query->count(); $list = $query->forPage($page, $size)->get()->toArray(); return [ 'total' => $total, 'page' => $page, 'size' => $size, 'list' => $list, ]; } public function getTeachersBySubject(string $subject, int $page = 1, int $size = 20): array { $query = Teacher::subject($subject) ->enabled() ->orderBy('sort_order', 'asc'); $total = $query->count(); $list = $query->forPage($page, $size)->get()->toArray(); return [ 'total' => $total, 'page' => $page, 'size' => $size, 'list' => $list, ]; } public function searchTeachers(string $keyword, int $page = 1, int $size = 20): array { $query = Teacher::search($keyword) ->enabled() ->orderBy('sort_order', 'asc'); $total = $query->count(); $list = $query->forPage($page, $size)->get()->toArray(); return [ 'total' => $total, 'page' => $page, 'size' => $size, 'list' => $list, ]; } protected function getModel(): AetherModel { return $this->model; } protected function getValidator(): AetherValidator { return $this->validator; } }