course/app/common/service/SubjectHomeworkService.php

95 lines
2.9 KiB
PHP
Raw Normal View History

<?php
namespace app\common\service;
use app\common\model\SubjectHomework;
use app\common\model\Teacher;
use app\common\model\TeacherScheduleTime;
use app\constant\ResponseCode;
use think\Exception;
class SubjectHomeworkService
{
/**
* @desc 发布课程作业
* @param $request
* @return array|void
*/
public function publish($request)
{
try {
if (empty($request->teacher)) {
throw new Exception('请教师登陆后再设置');
}
$teacher = Teacher::where(['id' => $request->teacher->id])->findOrEmpty();
if ($teacher->isEmpty()) {
throw new Exception('未找到教师信息,设置失败');
}
$data = $request->post();
$teacher_schedule_time = TeacherScheduleTime::where(['id' => $data['teacher_schedule_time_id']])->findOrEmpty();
if ($teacher_schedule_time->isEmpty()) {
throw new Exception('未找到教师课程安排');
}
$subject_homework = SubjectHomework::where([
'teacher_id' => $teacher->id,
'teacher_schedule_time_id' => $data['teacher_schedule_time_id'],
'subject_id' => $teacher_schedule_time->subject_id
])->findOrEmpty();
if (!$subject_homework->isEmpty()) {
throw new Exception('家庭作业已存在,请勿重复提交');
}
$res = SubjectHomework::create([
'teacher_id' => $teacher->id,
'teacher_schedule_time_id' => $data['teacher_schedule_time_id'],
'subject_id' => $teacher_schedule_time->subject_id,
'homework_file_url' => $data['homework_file_url'],
'homework_file_name' => $data['homework_file_name'],
]);
return [
'code' => ResponseCode::SUCCESS,
'msg' => '操作成功'
];
} catch (Exception $e) {
return [
'code' => ResponseCode::FAIL,
'msg' => $e->getMessage()
];
}
}
/**
* @desc 获取课程的家庭作业
* @param $request
* @return array
*/
public function getSubjectHomework($request)
{
try {
$data = $request->get();
$subject_homework = SubjectHomework::where(['teacher_schedule_time_id' => $data['teacher_schedule_time_id'], 'is_publish' => 1])
->with(['teacher', 'subject'])
->findOrEmpty();
return [
'code' => ResponseCode::SUCCESS,
'data' => $subject_homework,
'msg' => 'success'
];
} catch (Exception $e) {
return [
'code' => ResponseCode::FAIL,
'msg' => $e->getMessage()
];
}
}
}