study-api-v2/app/Http/Controllers/Admin/Teachers/TeacherClassController.php

203 lines
5.7 KiB
PHP

<?php
namespace App\Http\Controllers\Admin\Teachers;
use App\Http\Controllers\BaseController;
use App\Http\Requests\Admin\Teachers\TeacherClassRequest;
use App\Services\Teachers\TeacherClassService;
use Illuminate\Http\JsonResponse;
/**
* 老师班级关联控制器
*/
class TeacherClassController extends BaseController
{
public function __construct(
private TeacherClassService $teacherClassService
) {}
/**
* 获取老师班级关联列表
*/
public function list(TeacherClassRequest $request): JsonResponse
{
$params = $request->validated();
$result = $this->teacherClassService->getList($params);
return $this->SuccessPage($result->items(), $result->total());
}
/**
* 获取老师班级关联详情
*/
public function detail(TeacherClassRequest $request): JsonResponse
{
$params = $request->validated();
$result = $this->teacherClassService->detail($params['id']);
return $this->Success($result);
}
/**
* 创建老师班级关联
*/
public function create(TeacherClassRequest $request): JsonResponse
{
$data = $request->validated();
$result = $this->teacherClassService->create($data);
return $this->Success($result);
}
/**
* 更新老师班级关联
*/
public function update(TeacherClassRequest $request): JsonResponse
{
$params = $request->validated();
$result = $this->teacherClassService->update($params['id'], $params);
return $this->Success($result);
}
/**
* 删除老师班级关联
*/
public function delete(TeacherClassRequest $request): JsonResponse
{
$params = $request->validated();
$this->teacherClassService->delete($params['id']);
return $this->Success();
}
/**
* 批量删除老师班级关联
*/
public function batchDelete(TeacherClassRequest $request): JsonResponse
{
$params = $request->validated();
$this->teacherClassService->batchDelete($params['ids']);
return $this->Success();
}
/**
* 获取老师的班级列表
*/
public function teacherClasses(TeacherClassRequest $request): JsonResponse
{
$params = $request->validated();
$result = $this->teacherClassService->getTeacherClasses($params['teacher_id']);
return $this->Success($result);
}
/**
* 获取当前用户的班级列表
*/
public function myClasses(TeacherClassRequest $request): JsonResponse
{
$teacherId = $request->user()->id;
$result = $this->teacherClassService->getTeacherClasses($teacherId);
return $this->Success($result);
}
/**
* 获取班级的老师列表
*/
public function classTeachers(TeacherClassRequest $request): JsonResponse
{
$params = $request->validated();
$result = $this->teacherClassService->getClassTeachers($params['class_id']);
return $this->Success($result);
}
/**
* 获取学校的老师列表
*/
public function schoolTeachers(TeacherClassRequest $request): JsonResponse
{
$params = $request->validated();
$result = $this->teacherClassService->getSchoolTeachers($params['school_id']);
return $this->Success($result);
}
/**
* 获取班主任列表
*/
public function headmans(TeacherClassRequest $request): JsonResponse
{
$params = $request->validated();
$result = $this->teacherClassService->getHeadmans(
$params['school_id'] ?? null,
$params['grade_id'] ?? null
);
return $this->Success($result);
}
/**
* 批量分配老师到班级
*/
public function batchAssign(TeacherClassRequest $request): JsonResponse
{
$params = $request->validated();
$result = $this->teacherClassService->batchAssignTeachersToClass(
$params['teacher_ids'],
$params['class_id'],
$params['grade_id'] ?? null
);
return $this->Success($result);
}
/**
* 批量移除老师班级关联
*/
public function batchRemove(TeacherClassRequest $request): JsonResponse
{
$params = $request->validated();
$result = $this->teacherClassService->batchRemoveTeachersFromClass(
$params['teacher_ids'],
$params['class_id']
);
return $this->Success(['removed_count' => $result]);
}
/**
* 设置班主任
*/
public function setHeadman(TeacherClassRequest $request): JsonResponse
{
$params = $request->validated();
$result = $this->teacherClassService->setHeadman(
$params['teacher_id'],
$params['class_id']
);
return $this->Success(['success' => $result]);
}
/**
* 取消班主任
*/
public function removeHeadman(TeacherClassRequest $request): JsonResponse
{
$params = $request->validated();
$result = $this->teacherClassService->removeHeadman($params['class_id']);
return $this->Success(['success' => $result]);
}
/**
* 获取老师班级统计信息
*/
public function stats(TeacherClassRequest $request): JsonResponse
{
$params = $request->validated();
$result = $this->teacherClassService->getTeacherClassStats($params['teacher_id']);
return $this->Success($result);
}
/**
* 获取当前用户班级统计信息
*/
public function myStats(TeacherClassRequest $request): JsonResponse
{
$teacherId = $request->user()->id;
$result = $this->teacherClassService->getTeacherClassStats($teacherId);
return $this->Success($result);
}
}