course/app/common/service/SubjectHomeworkService.php
2024-07-24 23:07:51 +08:00

192 lines
8.2 KiB
PHP

<?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('家庭作业已存在,请勿重复提交');
// }
if (isset($data['subject_homework_id']) && !empty($data['subject_homework_id'])) {
$subject_homework = SubjectHomework::where(['id' => $data['subject_homework_id']])->findOrEmpty();
} else {
$subject_homework = new SubjectHomework();
}
$res = $subject_homework->save([
'teacher_id' => $teacher->id,
'teacher_schedule_time_id' => $data['teacher_schedule_time_id'],
'date' => $teacher_schedule_time->date,
'time' => $teacher_schedule_time->time,
'start_time' => $teacher_schedule_time->start_time,
'end_time' => $teacher_schedule_time->end_time,
'month' => $teacher_schedule_time->month,
'subject_id' => $teacher_schedule_time->subject_id,
'homework_web_url' => isset($data['homework_web_url']) ? $data['homework_web_url'] : '',
'homework_file_url' => isset($data['homework_file_url']) ? json_encode($data['homework_file_url'], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) : '',
// 'homework_file_name' => isset($data['homework_file_name']) ? json_encode($data['homework_file_name'], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) : '',
'last_homework_feedback_url' => isset($data['last_homework_feedback_url']) ? json_encode($data['last_homework_feedback_url'], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) : '',
// 'last_homework_feedback_name' => isset($data['last_homework_feedback_name']) ? json_encode($data['last_homework_feedback_name'], JSON_UNESCAPED_UNICODE, JSON_UNESCAPED_SLASHES) : '',
'subject_report_url' => isset($data['subject_report_url']) ? json_encode($data['subject_report_url'], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) : '',
// 'subject_report_name' => isset($data['subject_report_name']) ? $data['subject_report_name'] : '',
'subject_file_url' => isset($data['subject_file_url']) ? json_encode($data['subject_file_url'], JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES) : '',
// 'subject_file_name' => isset($data['subject_file_name']) ? $data['subject_file_name'] : '',
]);
return [
'code' => ResponseCode::SUCCESS,
'msg' => '操作成功'
];
} catch (Exception $e) {
return [
'code' => ResponseCode::FAIL,
'msg' => $e->getMessage()
];
}
}
/**
* @desc 获取课程的家庭作业
* @param $request
* @return array
*/
public function getTeacherSubjectHomework($request)
{
try {
$data = $request->get();
$subject_homework = SubjectHomework::where(['teacher_schedule_time_id' => $data['teacher_schedule_time_id']])
->with(['teacher', 'subject'])
->findOrEmpty();
if($subject_homework->homework_file_url){
$subject_homework->homework_file_url = json_decode($subject_homework->homework_file_url, true);
}
if($subject_homework->homework_version_file_url){
$subject_homework->homework_version_file_url = json_decode($subject_homework->homework_version_file_url, true);
}
if($subject_homework->last_homework_feedback_url){
$subject_homework->last_homework_feedback_url = json_decode($subject_homework->last_homework_feedback_url, true);
}
if($subject_homework->subject_report_url){
$subject_homework->subject_report_url = json_decode($subject_homework->subject_report_url, true);
}
if($subject_homework->subject_file_url){
$subject_homework->subject_file_url = json_decode($subject_homework->subject_file_url, true);
}
return [
'code' => ResponseCode::SUCCESS,
'data' => $subject_homework,
'msg' => 'success'
];
} 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()
];
}
}
/**
* @desc 更新课程作业
* @param $request
* @return array
*/
public function updateSubjectHomework($request)
{
try {
$data = $request->post();
$subject_homework = SubjectHomework::where(['id' => $data['subject_homework_id']])->findOrEmpty();
if ($subject_homework->isEmpty()) {
throw new Exception('未找到课程作业');
}
$subject_homework->update([
'homework_web_url' => isset($data['homework_web_url']) ? $data['homework_web_url'] : '',
'homework_file_url' => isset($data['homework_file_url']) ? $data['homework_file_url'] : '',
'homework_file_name' => isset($data['homework_file_name']) ? $data['homework_file_name'] : '',
'last_homework_feedback_url' => isset($data['last_homework_feedback_url']) ? $data['last_homework_feedback_url'] : '',
'last_homework_feedback_name' => isset($data['last_homework_feedback_name']) ? $data['last_homework_feedback_name'] : '',
'subject_report_url' => isset($data['subject_report_url']) ? $data['subject_report_url'] : '',
'subject_report_name' => isset($data['subject_report_name']) ? $data['subject_report_name'] : '',
'subject_file_url' => isset($data['subject_file_url']) ? $data['subject_file_url'] : '',
'subject_file_name' => isset($data['subject_file_name']) ? $data['subject_file_name'] : '',
]);
return [
'code' => ResponseCode::SUCCESS,
'msg' => 'success',
];
} catch (Exception $e) {
return [
'code' => ResponseCode::FAIL,
'msg' => $e->getMessage()
];
}
}
}