course/app/common/service/SubjectHomeworkService.php

292 lines
12 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,
'en_date' => $teacher_schedule_time->en_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,
'en_month' => $teacher_schedule_time->en_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();
if (!empty((array)$request->teacher)) {
$subject_homework = SubjectHomework::where(['teacher_schedule_time_id' => $data['teacher_schedule_time_id']])
->with(['teacher', 'subject'])
->findOrEmpty();
}else{
$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']])
->with(['teacher', 'subject'])
->withoutField('homework_version_file_url,homework_version_is_publish,last_homework_feedback_version_url,subject_file_version_url,subject_file_version_is_publish')
->findOrEmpty();
//家庭作业
if(!$subject_homework->homework_file_is_publish){
$subject_homework->homework_file_url = '';
}
//上次作业
if(!$subject_homework->last_homework_feedback_is_publish){
$subject_homework->last_homework_feedback_url = '';
}
//课程报告/翻译件
if(!$subject_homework->subject_report_version_is_publish){
$subject_homework->subject_report_url = '';
}else{
if($subject_homework->subject_report_version_url){
//翻译件不为空,取翻译件值
$subject_homework->subject_report_url = $subject_homework->subject_report_version_url;
}else{
$subject_homework->subject_report_url = '';
}
}
//课程文件
if(!$subject_homework->subject_file_version_url){
$subject_homework->subject_file_version_url = '';
}
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->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 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()
];
}
}
}