273 lines
11 KiB
PHP
273 lines
11 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((array)$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'], 'is_publish' => 1])->findOrEmpty();
|
|
|
|
if ($teacher_schedule_time->isEmpty()) {
|
|
throw new Exception('未找到教师课程安排');
|
|
}
|
|
|
|
if (empty($teacher_schedule_time->subject_id)) {
|
|
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 = 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()) {
|
|
$subject_homework = new SubjectHomework();
|
|
}
|
|
}
|
|
|
|
|
|
$homework_file_url = '';
|
|
if (isset($data['homework_file_url'])) {
|
|
if (!empty(json_decode($data['homework_file_url'], true))) {
|
|
$homework_file_url = $data['homework_file_url'];
|
|
}
|
|
}
|
|
$last_homework_feedback_url = '';
|
|
if (isset($data['last_homework_feedback_url'])) {
|
|
if (!empty(json_decode($data['last_homework_feedback_url'], true))) {
|
|
$last_homework_feedback_url = $data['last_homework_feedback_url'];
|
|
}
|
|
}
|
|
$subject_report_url = '';
|
|
if (isset($data['subject_report_url'])) {
|
|
if (!empty(json_decode($data['subject_report_url'], true))) {
|
|
$subject_report_url = $data['subject_report_url'];
|
|
}
|
|
}
|
|
$subject_file_url = '';
|
|
if (isset($data['subject_file_url'])) {
|
|
if (!empty(json_decode($data['subject_file_url'], true))) {
|
|
$subject_file_url = $data['subject_file_url'];
|
|
}
|
|
}
|
|
|
|
$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,
|
|
'en_time' => $teacher_schedule_time->en_time,
|
|
'hour' => $teacher_schedule_time->hour,
|
|
'start_time' => $teacher_schedule_time->start_time,
|
|
'end_time' => $teacher_schedule_time->end_time,
|
|
'en_start_time' => $teacher_schedule_time->en_start_time,
|
|
'en_end_time' => $teacher_schedule_time->en_end_time,
|
|
'month' => $teacher_schedule_time->month,
|
|
'subject_id' => $teacher_schedule_time->subject_id,
|
|
'content' => isset($data['content']) ? $data['content'] : '',
|
|
'homework_web_url' => isset($data['homework_web_url']) ? $data['homework_web_url'] : '',
|
|
'homework_file_url' => $homework_file_url,
|
|
'last_homework_feedback_url' => $last_homework_feedback_url,
|
|
'subject_report_url' => $subject_report_url,
|
|
'subject_file_url' => $subject_file_url,
|
|
]);
|
|
|
|
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);
|
|
} else {
|
|
$subject_homework->homework_file_url = [];
|
|
}
|
|
if ($subject_homework->homework_version_file_url) {
|
|
$subject_homework->homework_version_file_url = json_decode($subject_homework->homework_version_file_url, true);
|
|
} else {
|
|
$subject_homework->homework_version_file_url = [];
|
|
}
|
|
if ($subject_homework->last_homework_feedback_url) {
|
|
$subject_homework->last_homework_feedback_url = json_decode($subject_homework->last_homework_feedback_url, true);
|
|
} else {
|
|
$subject_homework->last_homework_feedback_url = [];
|
|
}
|
|
if ($subject_homework->subject_report_url) {
|
|
$subject_homework->subject_report_url = json_decode($subject_homework->subject_report_url, true);
|
|
} else {
|
|
$subject_homework->subject_report_url = [];
|
|
}
|
|
if ($subject_homework->subject_file_url) {
|
|
$subject_homework->subject_file_url = json_decode($subject_homework->subject_file_url, true);
|
|
} else {
|
|
$subject_homework->subject_file_url = [];
|
|
}
|
|
|
|
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();
|
|
|
|
|
|
if ($subject_homework->homework_file_url) {
|
|
$subject_homework->homework_file_url = json_decode($subject_homework->homework_file_url, true);
|
|
} else {
|
|
$subject_homework->homework_file_url = [];
|
|
}
|
|
if ($subject_homework->homework_version_file_url) {
|
|
$subject_homework->homework_version_file_url = json_decode($subject_homework->homework_version_file_url, true);
|
|
} else {
|
|
$subject_homework->homework_version_file_url = [];
|
|
}
|
|
if ($subject_homework->last_homework_feedback_url) {
|
|
$subject_homework->last_homework_feedback_url = json_decode($subject_homework->last_homework_feedback_url, true);
|
|
} else {
|
|
$subject_homework->last_homework_feedback_url = [];
|
|
}
|
|
if ($subject_homework->last_homework_feedback_version_url) {
|
|
$subject_homework->last_homework_feedback_version_url = json_decode($subject_homework->last_homework_feedback_version_url, true);
|
|
} else {
|
|
$subject_homework->last_homework_feedback_version_url = [];
|
|
}
|
|
if ($subject_homework->subject_report_url) {
|
|
$subject_homework->subject_report_url = json_decode($subject_homework->subject_report_url, true);
|
|
} else {
|
|
$subject_homework->subject_report_url = [];
|
|
}
|
|
if ($subject_homework->subject_report_version_url) {
|
|
$subject_homework->subject_report_version_url = json_decode($subject_homework->subject_report_version_url, true);
|
|
} else {
|
|
$subject_homework->subject_report_version_url = [];
|
|
}
|
|
if ($subject_homework->subject_file_url) {
|
|
$subject_homework->subject_file_url = json_decode($subject_homework->subject_file_url, true);
|
|
} else {
|
|
$subject_homework->subject_file_url = [];
|
|
}
|
|
if ($subject_homework->subject_file_version_url) {
|
|
$subject_homework->subject_file_version_url = json_decode($subject_homework->subject_file_version_url, true);
|
|
} else {
|
|
$subject_homework->subject_file_version_url = [];
|
|
}
|
|
|
|
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()
|
|
];
|
|
}
|
|
}
|
|
|
|
} |