| 
					
				 | 
			
			
				@@ -8,19 +8,22 @@ import com.yonge.cooleshow.biz.dal.dao.CourseHomeworkDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.dto.CourseHomeworkReviewDto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.dto.CourseHomeworkSaveDto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.dto.CourseHomeworkSubmitDto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.dto.CourseScheduleHomeworkSearch; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.dto.search.HomeworkAdminSearch; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.dto.search.HomeworkSearch; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.entity.CourseHomework; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.entity.CourseSchedule; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.entity.CourseScheduleStudentPayment; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import com.yonge.cooleshow.biz.dal.entity.SysMessageConfig; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.enums.ClientEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.enums.CourseScheduleEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.enums.MessageTypeEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.enums.YesOrNoEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.service.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.support.PageUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.vo.CourseHomeworkDetailVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.vo.CourseHomeworkVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.vo.CourseScheduleHomeworkVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.vo.StudentHomeworkVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.toolset.base.exception.BizException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.toolset.thirdparty.message.MessageSenderPluginContext; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.slf4j.Logger; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -31,10 +34,7 @@ import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.util.CollectionUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.Date; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.HashMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.stream.Collectors; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -57,9 +57,6 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private SysUserFeignService sysUserFeignService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private SysMessageConfigService sysMessageConfigService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private CourseScheduleStudentPaymentService courseScheduleStudentPaymentService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	@Override 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -75,36 +72,98 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (CollectionUtils.isEmpty(records)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return courseHomeworkVoIPage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 学生信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<CourseHomeworkVo> studentInfoList = baseMapper.selectStudentInfo(records); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<CourseHomeworkVo> practiceRecord = records.stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .filter(courseHomeworkVo -> courseHomeworkVo.getType().getCode().equals(CourseScheduleEnum.PRACTICE.getCode())) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            .collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 学生信息 陪练课展示 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<CourseHomeworkVo> studentInfoList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (CollectionUtils.isEmpty(practiceRecord)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            studentInfoList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            baseMapper.selectStudentInfo(practiceRecord); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (CollectionUtils.isEmpty(studentInfoList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            studentInfoList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<Long, List<CourseHomeworkVo>> studentCollect = studentInfoList.stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .collect(Collectors.groupingBy( CourseHomeworkVo::getCourseId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 旷课状态 和老师信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 老师信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<CourseHomeworkVo> teacherInfoList = baseMapper.selectTeacherInfo(records); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (CollectionUtils.isEmpty(teacherInfoList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            teacherInfoList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<Long, List<CourseHomeworkVo>> teacherCollect = teacherInfoList.stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      .collect(Collectors.groupingBy( CourseHomeworkVo::getCourseId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 旷课状态  学生端展示 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<Long, List<CourseHomeworkVo>> absenteeismCollect = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (query.getStudentId() != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<CourseHomeworkVo> absenteeismList = baseMapper.selectAbsenteeism(records,query.getStudentId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (CollectionUtils.isEmpty(absenteeismList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                absenteeismList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            absenteeismCollect = absenteeismList.stream().collect(Collectors.groupingBy( CourseHomeworkVo::getCourseId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 声部信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<CourseHomeworkVo> subjectList = baseMapper.selectSubjectInfoList(records); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for (int i = 0; i < records.size(); i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            records.get(i).setStudentId(studentInfoList.get(i).getStudentId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            records.get(i).setStudentAvatar(studentInfoList.get(i).getStudentAvatar()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            records.get(i).setStudentName(studentInfoList.get(i).getStudentName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            records.get(i).setSubjectName(subjectList.get(i).getSubjectName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            records.get(i).setTeacherAvatar(teacherInfoList.get(i).getTeacherAvatar()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            records.get(i).setTeacherId(teacherInfoList.get(i).getTeacherId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            records.get(i).setTeacherName(teacherInfoList.get(i).getTeacherName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            records.get(i).setAbsenteeism(teacherInfoList.get(i).getAbsenteeism()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<CourseHomeworkVo> subjectList = baseMapper.selectSubjectAndGroupInfoList(records); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (CollectionUtils.isEmpty(subjectList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            subjectList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Map<Long, List<CourseHomeworkVo>>subjectCollect = subjectList.stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      .collect(Collectors.groupingBy( CourseHomeworkVo::getCourseId)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (CourseHomeworkVo record : records) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            List<CourseHomeworkVo> courseHomeworkVoList = studentCollect.get(record.getCourseId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            CourseHomeworkVo courseHomeworkVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!CollectionUtils.isEmpty(courseHomeworkVoList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                courseHomeworkVo = courseHomeworkVoList.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                record.setStudentId(courseHomeworkVo.getStudentId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                record.setStudentAvatar(courseHomeworkVo.getStudentAvatar()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                record.setStudentName(courseHomeworkVo.getStudentName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            courseHomeworkVoList = teacherCollect.get(record.getCourseId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!CollectionUtils.isEmpty(courseHomeworkVoList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                courseHomeworkVo = courseHomeworkVoList.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                record.setTeacherId(courseHomeworkVo.getTeacherId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                record.setTeacherName(courseHomeworkVo.getTeacherName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                record.setTeacherAvatar(courseHomeworkVo.getTeacherAvatar()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            courseHomeworkVoList = absenteeismCollect.get(record.getCourseId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!CollectionUtils.isEmpty(courseHomeworkVoList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                courseHomeworkVo = courseHomeworkVoList.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                record.setAbsenteeism(courseHomeworkVo.getAbsenteeism()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                record.setAbsenteeism(YesOrNoEnum.NO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            courseHomeworkVoList = subjectCollect.get(record.getCourseId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!CollectionUtils.isEmpty(courseHomeworkVoList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                courseHomeworkVo = courseHomeworkVoList.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                record.setCourseGroupName(courseHomeworkVo.getCourseGroupName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                record.setSubjectName(courseHomeworkVo.getSubjectName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                record.setClassNum(courseHomeworkVo.getClassNum()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return courseHomeworkVoIPage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public CourseHomeworkDetailVo getCourseHomeworkDetailByCourseId(Long courseId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public CourseHomeworkDetailVo getCourseHomeworkDetailByCourseId(Long courseId, Long studentId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 课程基本信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        CourseHomeworkDetailVo courseHomeworkDetailVo = baseMapper.selectCourseHomeworkDetailByCourseId(courseId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CourseHomeworkDetailVo courseHomeworkDetailVo = baseMapper.selectCourseHomeworkDetailByCourseId(courseId,studentId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (courseHomeworkDetailVo == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            throw  new BizException("未找到作业信息"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 学生信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         CourseHomeworkDetailVo studentInfoDetailVo = baseMapper 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .selectPaymentStudentInfo(courseHomeworkDetailVo.getCourseScheduleId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .selectPaymentStudentInfo(courseHomeworkDetailVo.getCourseScheduleId(),studentId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 声部信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         CourseHomeworkDetailVo subjectAndTeacherInfoVo = baseMapper 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -158,17 +217,26 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param teacherId 老师id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private void sendDecorateHomework(Long courseScheduleId,Long teacherId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        CourseScheduleStudentPayment courseScheduleStudentPayment = courseScheduleStudentPaymentService.getByCourseId( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<CourseScheduleStudentPayment> paymentList = courseScheduleStudentPaymentService.getByCourseId( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 courseScheduleId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        SysUser student = sysUserFeignService.queryUserById(courseScheduleStudentPayment.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (paymentList.isEmpty()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         SysUser teacher = sysUserFeignService.queryUserById(teacherId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Map<Long,String> studentReceivers = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        studentReceivers.put(student.getId(), student.getPhone()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String url = sysMessageService.selectConfigUrl(MessageTypeEnum.TEACHER_DECORATE_HOMEWORK.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (CourseScheduleStudentPayment courseScheduleStudentPayment : paymentList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            SysUser student = sysUserFeignService.queryUserById(courseScheduleStudentPayment.getUserId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Map<Long,String> studentReceivers = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            studentReceivers.put(student.getId(), student.getPhone()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum.TEACHER_DECORATE_HOMEWORK, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-         studentReceivers, null, 0,url + courseScheduleId , ClientEnum.STUDENT.getCode(),teacher.getUsername()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.JIGUANG, MessageTypeEnum 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                       .TEACHER_DECORATE_HOMEWORK,studentReceivers, null, 0,url + courseScheduleId , 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                       ClientEnum.STUDENT.getCode(),teacher.getUsername()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                log.warn("老师布置作业消息发送失败  学生id:{}",student.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -180,7 +248,6 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private CourseHomework checkHasHomework(Long courseScheduleId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<CourseHomework> list = this.lambdaQuery() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         .eq(CourseHomework::getCourseScheduleId, courseScheduleId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                        .eq(CourseHomework::getCourseGroupType, CourseScheduleEnum.PRACTICE.getCode()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         .list(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (CollectionUtils.isEmpty(list)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             return null; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -201,7 +268,7 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 课程基本信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         CourseHomeworkDetailVo courseHomeworkDetailVo = baseMapper 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .selectCourseHomeworkDetailByCourseId(reviewDto.getCourseScheduleId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .selectCourseHomeworkDetailByCourseId(reviewDto.getCourseScheduleId(), reviewDto.getStudentId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 检查学生是否提交作业 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!YesOrNoEnum.YES.getCode().equals(courseHomeworkDetailVo.getSubmitHomework().getCode())) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -242,7 +309,7 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 课程基本信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         CourseHomeworkDetailVo courseHomeworkDetailVo = baseMapper 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                .selectCourseHomeworkDetailByCourseId(submitDto.getCourseScheduleId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .selectCourseHomeworkDetailByCourseId(submitDto.getCourseScheduleId(), submitDto.getStudentId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 检查老师是否评价作业 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (YesOrNoEnum.YES.getCode().equals(courseHomeworkDetailVo.getReviewHomework().getCode())) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -287,22 +354,25 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public IPage<CourseHomeworkVo> selectAdminPage(IPage<CourseHomeworkVo> page, HomeworkAdminSearch query) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        IPage<CourseHomeworkVo> courseHomeworkVoIPage = page.setRecords(baseMapper.selectAdminPage(page, query)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return page.setRecords(baseMapper.selectAdminPage(page, query)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<CourseHomeworkVo> records = courseHomeworkVoIPage.getRecords(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<Long> courseIdList = records 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      .stream() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      .map(CourseHomeworkVo::getCourseId) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      .collect(Collectors.toList()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (CollectionUtils.isEmpty(courseIdList)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return courseHomeworkVoIPage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // 查询提交时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        List<CourseHomeworkVo> courseHomeworkVoList = baseMapper.selectSubmitTime(courseIdList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        for (int i = 0; i < records.size(); i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            records.get(i).setSubmitTime(courseHomeworkVoList.get(i).getSubmitTime()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public CourseScheduleHomeworkVo getCourseHomeworkDetailByCourseId(CourseScheduleHomeworkSearch query) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //  查询课程作业信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        CourseScheduleHomeworkVo courseScheduleHomeworkVo = baseMapper 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .selectCourseHomeworkByCourseId(query.getCourseId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (courseScheduleHomeworkVo == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return courseScheduleHomeworkVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return courseHomeworkVoIPage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 课程人员作业 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        IPage<StudentHomeworkVo> studentHomeworkList = baseMapper 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .selectStudentHomeworkByCourseId(PageUtil.getPage(query),query.getCourseId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        courseScheduleHomeworkVo.setStudentHomeworkList(studentHomeworkList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return courseScheduleHomeworkVo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -313,8 +383,9 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private void checkCourseSchedule(Long courseScheduleId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 1. 检查课程类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         CourseSchedule courseSchedule = courseScheduleService.getById(courseScheduleId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!CourseScheduleEnum.PRACTICE.getCode().equals(courseSchedule.getType())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            throw  new BizException("非陪练课,不能布置课后作业"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!CourseScheduleEnum.PRACTICE.getCode().equals(courseSchedule.getType()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                && !CourseScheduleEnum.PIANO_ROOM_CLASS.getCode().equals(courseSchedule.getType())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            throw new BizException("不能布置课后作业"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 2. 检查课程结束 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!CourseScheduleEnum.COMPLETE.getCode().equals(courseSchedule.getStatus())) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -333,7 +404,7 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         CourseHomework courseHomework = new CourseHomework(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         courseHomework.setId(saveDto.getCourseHomeworkId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         courseHomework.setCourseGroupId(courseSchedule.getCourseGroupId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        courseHomework.setCourseGroupType(CourseScheduleEnum.PRACTICE.getCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        courseHomework.setCourseGroupType(courseSchedule.getType()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         courseHomework.setCourseScheduleId(saveDto.getCourseScheduleId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         courseHomework.setTitle(saveDto.getTitle()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         courseHomework.setContent(saveDto.getContent()); 
			 |