203 lines
5.7 KiB
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);
|
|
}
|
|
}
|