campusModel->list($data); } public function getCampusBy(int $id): array { $campus = $this->campusModel->find($id); if (! $campus || $campus->status != 1) { throw new BusinessException('校区不存在或已禁用', 10001); } return $campus->toArray(); } public function createCampus(array $data): int { $this->campusValidator->scene('create', $data)->check(); $campus = $this->campusModel->create($data); return $campus->id; } public function updateCampus(int $id, array $data): int { $this->campusValidator->scene('update', $data)->check(); return $this->campusModel->updateById($id, $data); } public function deleteCampus(int $id): bool { return $this->campusModel->deleteById($id); } public function getCampusById(int $id): array { $campus = Campus::find($id); if (! $campus || $campus->status != 1) { throw new BusinessException('校区不存在或已禁用', 10001); } return $campus->toArray(); } public function getCampusesByIds(array $ids): array { return Campus::whereIn('id', $ids) ->enabled() ->get() ->toArray(); } public function getCampusesByParentId(int $parentId): array { return Campus::where('parent_id', $parentId) ->enabled() ->get() ->toArray(); } public function getProvinces(): array { return Campus::level(1) ->enabled() ->orderBy('name') ->get(['id', 'name', 'province']) ->toArray(); } public function getCitiesByProvince(string $province): array { return Campus::level(2) ->province($province) ->enabled() ->orderBy('name') ->get(['id', 'name', 'city']) ->toArray(); } public function getTeacherById(int $id): array { $teacher = Teacher::find($id); if (! $teacher || $teacher->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, ]; } public function getTeachers(): array { // TODO: Implement getTeachers() method. } public function getTeacherBy(int $id): array { // TODO: Implement getTeacherBy() method. } public function createTeacher(array $data): int { // TODO: Implement createTeacher() method. } public function updateTeacher(int $id, array $data): int { // TODO: Implement updateTeacher() method. } public function deleteTeacher(int $id): bool { // TODO: Implement deleteTeacher() method. } }