diff --git a/app/common/service/StudentHomeworkService.php b/app/common/service/StudentHomeworkService.php index fa6f2de..69160af 100644 --- a/app/common/service/StudentHomeworkService.php +++ b/app/common/service/StudentHomeworkService.php @@ -157,14 +157,25 @@ class StudentHomeworkService if ($data['status'] == 0) { //未提交作业的课程 - $model = StudentSchedule::order('id desc')->where(['is_publish' => 1])->where('teacher_schedule_time_id', 'not in', function ($query) use ($student) { - $query->table('wa_student_homework')->where('student_id', $student->id)->field('teacher_schedule_time_id'); - })->where('student_id', $student->id); + + //查找该学生已发布的排课 + $publish_student_schedule = StudentSchedule::where(['student_id' => $student->id, 'is_publish' => 1])->column('teacher_schedule_time_id'); + + + //查找排课中发布的课程作业 + $publish_subject_homework = SubjectHomework::where(['teacher_schedule_time_id' => $publish_student_schedule, 'homework_file_is_publish' => 1])->column('teacher_schedule_time_id'); + + //查找课程作业中已提交的课程 + $submit_student_homework = StudentHomework::where(['student_id' => $student->id, 'teacher_schedule_time_id' => $publish_subject_homework])->column('teacher_schedule_time_id'); + + //从已发布的课程中去除已提交的,就是未提交的 + $unsubmit_student_homework = array_diff($publish_subject_homework, $submit_student_homework); + + $model = StudentSchedule::where(['student_id' => $student->id, 'is_publish' => 1, 'teacher_schedule_time_id'=>$unsubmit_student_homework]); $total = $model->count(); - $list = $model->with(['student', 'subject', 'teacher'])->page($page, $limit) - ->select(); - - + $list = $model->with(['student', 'subject', 'teacher']) + ->page($page, $limit) + ->select()->toArray(); } else { $model = StudentSchedule::order('id desc') ->where(['student_id' => $student->id, 'is_publish' => 1]) @@ -178,7 +189,6 @@ class StudentHomeworkService } - return [ 'code' => ResponseCode::SUCCESS,