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->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))) { $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 = new StudentHomework(); } $homework->save([ 'student_id' => $student->id, 'subject_homework_id' => $subject_homework->id, '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, 'feedback_file_url' => $feedback_file_url, ]); return [ 'code' => ResponseCode::SUCCESS, 'msg' => '操作成功' ]; } catch (Exception $e) { return [ 'code' => ResponseCode::FAIL, 'msg' => $e->getMessage() ]; } } /** * @desc 获取学生的课程作业 * @param $request * @return array|void */ public function getStudentSubjectHomework($request) { try { $data = $request->get(); $homework = StudentHomework::where(['teacher_schedule_time_id' => $data['teacher_schedule_time_id']])->order('id asc'); $page = isset($data['page']) ? $data['page'] : 1; $limit = isset($data['limit']) ? $data['limit'] : 10; $total = $homework->count(); $list = $homework->page($page, $limit)->bind(['student', 'subject'])->select(); return [ 'code' => ResponseCode::SUCCESS, 'data' => [ 'list' => $list, 'total' => $total, 'page' => $page, ], 'msg' => 'success' ]; } catch (Exception $e) { return [ 'code' => ResponseCode::FAIL, 'msg' => $e->getMessage() ]; } } /** * @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; $student_homework = StudentHomework::where(['student_id' => $student->id])->order('start_time desc'); if ($data['status']) { } else { $total = $student_homework->count(); $list = $student_homework->with(['student', 'subject', 'teacher']) ->page($page, $limit) ->select()->toArray(); } foreach ($list as &$item){ if($item['feedback_file_url']){ $item['feedback_file_url'] = json_decode($item['feedback_file_url'],true); }else{ $item['feedback_file_url'] = []; } } 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() ]; } } }