| 
					
				 | 
			
			
				@@ -4,9 +4,11 @@ import com.ym.mec.biz.dal.dao.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.dto.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.entity.ExtracurricularExercises; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.entity.ExtracurricularExercisesReply; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.entity.StudentCourseHomework; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.entity.Teacher; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.enums.ImSendTypeEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.enums.MessageTypeEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.enums.YesOrNoEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.page.ExtraExercilseQueryInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.service.ExtracurricularExercisesService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.service.StudentServeService; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -49,6 +51,8 @@ public class ExtracurricularExercisesServiceImpl extends BaseServiceImpl<Long, E 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	private CourseHomeworkDao courseHomeworkDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	@Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	private StudentServeService studentServeService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	@Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	private StudentCourseHomeworkDao studentCourseHomeworkDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	@Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	public BaseDAO<Long, ExtracurricularExercises> getDAO() { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -236,13 +240,67 @@ public class ExtracurricularExercisesServiceImpl extends BaseServiceImpl<Long, E 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			List<ExtracurricularExercisesHomeworkListDto> exercises = homeworksExercises.stream().filter(e -> e.getType().equals("EXERCISES")).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			if(exercises.size() > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				List<Integer> exercisesIdList = exercises.stream().map(e -> e.getHomeworkId()).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				dataList.addAll(extracurricularExercisesDao.findByIdList(exercisesIdList)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				List<TeacherHomeworkListDto> byIdList = extracurricularExercisesDao.findByIdList(exercisesIdList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if(byIdList != null && byIdList.size() > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					List<Integer> extraExerciseIds = byIdList.stream().map(TeacherHomeworkListDto::getHomeworkId).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					List<ExtracurricularExercisesReply> extraExerciseStudentsByExtraExercises = extracurricularExercisesReplyDao.findExtraExerciseStudentsByExtraExercises(extraExerciseIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Map<Long, List<ExtracurricularExercisesReply>> idStudentsMap = extraExerciseStudentsByExtraExercises.stream().collect(Collectors.groupingBy(ExtracurricularExercisesReply::getExtracurricularExercisesId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					for (TeacherHomeworkListDto homeworkListDto : byIdList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						List<ExtracurricularExercisesReply> extracurricularExercisesReplies = idStudentsMap.get(homeworkListDto.getHomeworkId().longValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						if(CollectionUtils.isEmpty(extracurricularExercisesReplies)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						long noRepliedNum = extracurricularExercisesReplies.stream().filter(e -> e.getStatus()==1&&e.getIsReplied() == 0).count(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						if(noRepliedNum<=0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							homeworkListDto.setIsReplied(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						long notSubmitNum = extracurricularExercisesReplies.stream().filter(e -> e.getStatus() == 0).count(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						if(notSubmitNum<=0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							homeworkListDto.setIsSubmit(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						if(noRepliedNum>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							homeworkListDto.setStatus(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						}else if(noRepliedNum<=0&¬SubmitNum>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							homeworkListDto.setStatus(2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						}else if(noRepliedNum<=0&¬SubmitNum<=0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							homeworkListDto.setStatus(3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					dataList.addAll(byIdList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			//课后作业 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			List<ExtracurricularExercisesHomeworkListDto> homeworkList = homeworksExercises.stream().filter(e -> e.getType().equals("HOMEWORK")).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			if(homeworkList.size() > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 				List<Integer> homeworkIdList = homeworkList.stream().map(e -> e.getHomeworkId()).collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				dataList.addAll(courseHomeworkDao.findByIdList(homeworkIdList)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				List<TeacherHomeworkListDto> byIdList = courseHomeworkDao.findByIdList(homeworkIdList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				if(byIdList != null && byIdList.size() > 0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					List<Long> courseIds = byIdList.stream().mapToLong(TeacherHomeworkListDto::getCourseScheduleId).boxed().collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					List<StudentCourseHomework> allStudentCourseHomeworks = studentCourseHomeworkDao.findByCourses(courseIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					Map<Long, List<StudentCourseHomework>> homeworkStudentMap = allStudentCourseHomeworks.stream().collect(Collectors.groupingBy(StudentCourseHomework::getCourseScheduleId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					for (TeacherHomeworkListDto teacherHomeworkListDto : byIdList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						List<StudentCourseHomework> studentCourseHomeworks = homeworkStudentMap.get(teacherHomeworkListDto.getCourseScheduleId().longValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						if(CollectionUtils.isEmpty(studentCourseHomeworks)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						long noRepliedNum=studentCourseHomeworks.stream().filter(e -> YesOrNoEnum.YES.equals(e.getStatus())&&YesOrNoEnum.NO.equals(e.getIsReplied())).count(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						if(noRepliedNum<=0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							teacherHomeworkListDto.setIsReplied(YesOrNoEnum.YES.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						long notSubmitNum = studentCourseHomeworks.stream().filter(e -> e.getStatus().equals(YesOrNoEnum.NO)).count(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						if(notSubmitNum<=0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							teacherHomeworkListDto.setIsSubmit(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						if(noRepliedNum>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							teacherHomeworkListDto.setStatus(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						}else if(noRepliedNum<=0&¬SubmitNum>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							teacherHomeworkListDto.setStatus(2); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						}else if(noRepliedNum<=0&¬SubmitNum<=0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+							teacherHomeworkListDto.setStatus(3); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+						} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+					dataList.addAll(byIdList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			dataList.removeAll(Collections.singleton(null)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			dataList = dataList.stream().sorted(Comparator.comparing(TeacherHomeworkListDto::getDay).reversed()).collect(Collectors.toList()); 
			 |