|
@@ -34,10 +34,8 @@ 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;
|
|
|
|
|
|
|
|
|
@Service
|
|
@@ -74,25 +72,81 @@ public class CourseHomeworkServiceImpl extends ServiceImpl<CourseHomeworkDao, Co
|
|
|
if (CollectionUtils.isEmpty(records)) {
|
|
|
return courseHomeworkVoIPage;
|
|
|
}
|
|
|
+ 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> studentInfoList = baseMapper.selectStudentInfo(records);
|
|
|
-
|
|
|
- // 旷课状态 和老师信息
|
|
|
+ // 老师信息
|
|
|
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.selectSubjectAndGroupInfoList(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());
|
|
|
- records.get(i).setCourseGroupName(subjectList.get(i).getCourseGroupName());
|
|
|
+
|
|
|
+ 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;
|
|
|
}
|