diff --git a/app/api/controller/StudentHomeworkController.php b/app/api/controller/StudentHomeworkController.php index 2e76300..e8ec006 100644 --- a/app/api/controller/StudentHomeworkController.php +++ b/app/api/controller/StudentHomeworkController.php @@ -34,4 +34,31 @@ class StudentHomeworkController extends BaseController return $this->json($result); } -} \ No newline at end of file + + + /** + * @desc 获取学生所有的家庭作业 + * @param Request $request + * @return \support\Response + */ + public function getStudentHomework(Request $request) + { + $service = new StudentHomeworkService(); + $result = $service->getStudentHomework($request); + return $this->json($result); + } + + /** + * @desc 学生查看作业 + * @param Request $request + * @return \support\Response + */ + public function checkSubjectHomework(Request $request) + { + $service = new StudentHomeworkService(); + $result = $service->checkSubjectHomework($request); + return $this->json($result); + } + + +} diff --git a/app/common/service/StudentHomeworkService.php b/app/common/service/StudentHomeworkService.php index 73ee06f..abef4ea 100644 --- a/app/common/service/StudentHomeworkService.php +++ b/app/common/service/StudentHomeworkService.php @@ -39,20 +39,19 @@ class StudentHomeworkService $data = $request->post(); - $subject_homework = SubjectHomework::where(['teacher_schedule_time_id' => $data['subject_homework_id'], 'is_publish' => 1])->findOrEmpty(); if ($subject_homework->isEmpty()) { throw new Exception('老师还未布置课程作业'); } $feedback_file_url = ''; - if(isset($data['feedback_file_url'])){ - if(!empty(json_decode($data['feedback_file_url'],true))){ + if (isset($data['feedback_file_url'])) { + if (!empty(json_decode($data['feedback_file_url'], true))) { $feedback_file_url = $data['feedback_file_url']; } } - $homework = StudentHomework::where(['student_id' => $student->id, 'subject_homework_id'=> $subject_homework->id])->findOrEmpty(); - if($homework->isEmpty()){ + $homework = StudentHomework::where(['student_id' => $student->id, 'subject_homework_id' => $subject_homework->id])->findOrEmpty(); + if ($homework->isEmpty()) { $homework = new StudentHomework(); } @@ -62,15 +61,15 @@ class StudentHomeworkService 'teacher_id' => $subject_homework->teacher_id, 'teacher_schedule_time_id' => $subject_homework->teacher_schedule_time_id, 'subject_id' => $subject_homework->subject_id, - 'date'=> $subject_homework->date, - 'time'=> $subject_homework->time, - 'en_time'=> $subject_homework->en_time, - 'hour'=> $subject_homework->hour, - 'start_time'=> $subject_homework->start_time, - 'end_time'=> $subject_homework->end_time, - 'en_start_time'=> $subject_homework->start_time, - 'en_end_time'=> $subject_homework->end_time, - 'month'=> $subject_homework->month, + 'date' => $subject_homework->date, + 'time' => $subject_homework->time, + 'en_time' => $subject_homework->en_time, + 'hour' => $subject_homework->hour, + 'start_time' => $subject_homework->start_time, + 'end_time' => $subject_homework->end_time, + 'en_start_time' => $subject_homework->start_time, + 'en_end_time' => $subject_homework->end_time, + 'month' => $subject_homework->month, 'feedback_file_url' => $feedback_file_url, ]); @@ -121,4 +120,138 @@ class StudentHomeworkService } } -} \ No newline at end of file + + /** + * @desc 获取学生作业 + * @param $request + * @return array + */ + public function getStudentHomework($request) + { + try { + if (empty((array)$request->student) && empty((array)$request->parent)) { + throw new Exception('请登陆后再查看'); + } + if (!empty((array)$request->student)) { + $student = Student::where(['id' => $request->student->id])->findOrEmpty(); + if ($student->isEmpty()) { + throw new Exception('未找到用户信息'); + } + } + if (!empty((array)$request->parent)) { + $student = Student::where(['parent_id' => $request->parent->id])->findOrEmpty(); + if ($student->isEmpty()) { + throw new Exception('未找到用户信息'); + } + } + $data = $request->all(); + + $page = isset($data['page']) ? $data['page'] : 1; + $limit = isset($data['limit']) ? $data['limit'] : 10; + if ($data['status']) { + + } else { + $student_homework = StudentHomework::where(['student_id' => $student->id])->order('start_time desc'); + $total = $student_homework->count(); + $list = $student_homework->with(['student', 'subject', 'teacher']) + ->page($page, $limit) + ->select(); + } + + + return [ + 'code' => ResponseCode::SUCCESS, + 'data' => [ + 'list' => $list, + 'total' => $total, + ], + 'msg' => 'success', + ]; + + } catch (Exception $e) { + return [ + 'code' => ResponseCode::FAIL, + 'msg' => $e->getMessage() + ]; + } + } + + + /** + * @desc 获取课程的家庭作业 + * @param $request + * @return array + */ + public function checkSubjectHomework($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->isEmpty()) { + throw new Exception('课程作业未布置'); + } + + 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 = []; + } + + + $student_homework = StudentHomework::where(['teacher_schedule_time_id' => $data['teacher_schedule_time_id'], 'student_id' => $request->student->id]) + ->field('id,student_id,subject_homework_id,teacher_id,teacher_schedule_time_id,feedback_file_url') + ->findOrEmpty()->toArray(); + + + if (empty($student_homework)) { + $student_homework = [ + 'id' => '', + 'student_id' => $request->student->id, + 'subject_homework_id' => $subject_homework->id, + 'teacher_id' => $subject_homework->teacher_id, + 'teacher_schedule_time_id' => $subject_homework->teacher_schedule_time_id, + 'feedback_file_url' => [], + ]; + } + + return [ + 'code' => ResponseCode::SUCCESS, + 'data' => [ + 'subject_homework' => $subject_homework, + 'student_homework' => $student_homework, + ], + 'msg' => 'success' + ]; + } catch (Exception $e) { + return [ + 'code' => ResponseCode::FAIL, + 'msg' => $e->getMessage() + ]; + } + } + +}