|
@@ -84,7 +84,7 @@ public class StudentServeServiceImpl implements StudentServeService {
|
|
|
noClassStudentIds.add(studentCoursesEntry.getKey());
|
|
|
continue;
|
|
|
}
|
|
|
- if(studentServeDto.getCourseStartTime().after(nextMonday)){
|
|
|
+ if(!nextMonday.before(studentServeDto.getCourseStartTime())){
|
|
|
dontServeInCurrentWeekStudentIds.add(studentCoursesEntry.getKey());
|
|
|
continue;
|
|
|
}
|
|
@@ -98,16 +98,20 @@ public class StudentServeServiceImpl implements StudentServeService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ Set<Integer> allServeStudentIds=new HashSet<>();
|
|
|
+ allServeStudentIds.addAll(haveClassStudentIds);
|
|
|
+ allServeStudentIds.addAll(noClassStudentIds);
|
|
|
+
|
|
|
Map<Integer, List<StudentServeCourseHomeworkDto>> studentHomeworkMap=new HashMap<>();
|
|
|
Map<Integer, List<ExtracurricularExercisesReply>> studentExercisesMap=new HashMap<>();
|
|
|
|
|
|
- if (!CollectionUtils.isEmpty(haveClassStudentIds)){
|
|
|
- List<StudentServeCourseHomeworkDto> studentHomeworks = studentCourseHomeworkDao.findStudentHomeworkWithCourseDateRange(monDayDate.toString(), sunDayDate.toString(), new ArrayList<>(haveClassStudentIds));
|
|
|
+ if (!CollectionUtils.isEmpty(allServeStudentIds)){
|
|
|
+ List<StudentServeCourseHomeworkDto> studentHomeworks = studentCourseHomeworkDao.findStudentHomeworkWithCourseDateRange(monDayDate.toString(), sunDayDate.toString(), new ArrayList<>(allServeStudentIds));
|
|
|
studentHomeworkMap = studentHomeworks.stream().filter(h -> DateUtil.daysBetween(h.getCourseStartTime(), h.getHomeworkCreateTime())<3).collect(Collectors.groupingBy(StudentServeCourseHomeworkDto::getUserId));
|
|
|
}
|
|
|
|
|
|
- if(!CollectionUtils.isEmpty(noClassStudentIds)){
|
|
|
- List<ExtracurricularExercisesReply> studentExercises = extracurricularExercisesReplyDao.getStudentExercisesWithTimeZone(monDayDate.toString(), sunDayDate.toString(), new ArrayList<>(noClassStudentIds));
|
|
|
+ if(!CollectionUtils.isEmpty(allServeStudentIds)){
|
|
|
+ List<ExtracurricularExercisesReply> studentExercises = extracurricularExercisesReplyDao.getStudentExercisesWithTimeZone(monDayDate.toString(), sunDayDate.toString(), new ArrayList<>(allServeStudentIds));
|
|
|
studentExercisesMap = studentExercises.stream().collect(Collectors.groupingBy(ExtracurricularExercisesReply::getUserId));
|
|
|
}
|
|
|
|
|
@@ -122,67 +126,63 @@ public class StudentServeServiceImpl implements StudentServeService {
|
|
|
studentExtracurricularExercisesSituation.setStudentId(studentCoursesEntry.getKey());
|
|
|
studentExtracurricularExercisesSituation.setTeacherId(studentCoursesEntry.getValue().get(0).getTeacherId());
|
|
|
studentExtracurricularExercisesSituation.setExpectExercisesNum(1);
|
|
|
+ studentExtracurricularExercisesSituation.setActualExercisesNum(0);
|
|
|
+ studentExtracurricularExercisesSituation.setExercisesReplyNum(0);
|
|
|
+ studentExtracurricularExercisesSituation.setExercisesMessageNum(0);
|
|
|
+ studentExtracurricularExercisesSituation.setExercisesMessageTimelyNum(0);
|
|
|
studentExtracurricularExercisesSituation.setWeekOfYear(nowDate.get(DateUtil.weekFields.weekOfYear()));
|
|
|
studentExtracurricularExercisesSituation.setMonday(DateUtil.stringToDate(monDayDate.toString(), "yyyy-MM-dd"));
|
|
|
studentExtracurricularExercisesSituation.setSunday(DateUtil.stringToDate(sunDayDate.toString(), "yyyy-MM-dd"));
|
|
|
|
|
|
if(haveClassStudentIds.contains(studentCoursesEntry.getKey())){
|
|
|
studentExtracurricularExercisesSituation.setServeType("HOMEWORK");
|
|
|
- List<StudentServeCourseHomeworkDto> studentHomeworks = studentHomeworkMap.get(studentCoursesEntry.getKey());
|
|
|
- if(CollectionUtils.isEmpty(studentHomeworks)){
|
|
|
- studentExtracurricularExercisesSituation.setActualExercisesNum(0);
|
|
|
- studentExtracurricularExercisesSituation.setExercisesReplyNum(0);
|
|
|
- studentExtracurricularExercisesSituation.setExercisesMessageNum(0);
|
|
|
- studentExtracurricularExercisesSituation.setExercisesMessageTimelyNum(0);
|
|
|
- results.add(studentExtracurricularExercisesSituation);
|
|
|
- continue;
|
|
|
- }else{
|
|
|
- studentExtracurricularExercisesSituation.setActualExercisesNum(1);
|
|
|
- long replyNum = studentHomeworks.stream().filter(e -> YesOrNoEnum.YES.equals(e.getStatus())).count();
|
|
|
- studentExtracurricularExercisesSituation.setExercisesReplyNum(replyNum>0?1:0);
|
|
|
- long haveSubmitTimes = studentHomeworks.stream().filter(e -> Objects.nonNull(e.getSubmitTime())).count();
|
|
|
- if(replyNum>0&&haveSubmitTimes>0){
|
|
|
- Date lastSubmitTime = studentHomeworks.stream().filter(e->Objects.nonNull(e.getSubmitTime())).max(Comparator.comparing(StudentServeCourseHomeworkDto::getSubmitTime)).get().getSubmitTime();
|
|
|
- studentExtracurricularExercisesSituation.setLastSubmitTime(lastSubmitTime);
|
|
|
- }
|
|
|
- int exercisesMessageNum=0;
|
|
|
- int exercisesMessageTimelyNum=0;
|
|
|
- for (StudentServeCourseHomeworkDto studentHomework : studentHomeworks) {
|
|
|
- if(!YesOrNoEnum.YES.equals(studentHomework.getStatus())){
|
|
|
- continue;
|
|
|
- }
|
|
|
- if(!YesOrNoEnum.YES.equals(studentHomework.getIsReplied())){
|
|
|
- continue;
|
|
|
- }
|
|
|
- exercisesMessageNum+=1;
|
|
|
- if(new Integer(1).equals(studentHomework.getIsRepliedTimely())){
|
|
|
- exercisesMessageTimelyNum+=1;
|
|
|
- }
|
|
|
- }
|
|
|
- studentExtracurricularExercisesSituation.setExercisesMessageNum(exercisesMessageNum>0?1:0);
|
|
|
- studentExtracurricularExercisesSituation.setExercisesMessageTimelyNum(exercisesMessageTimelyNum>0?1:0);
|
|
|
- results.add(studentExtracurricularExercisesSituation);
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
if(noClassStudentIds.contains(studentCoursesEntry.getKey())){
|
|
|
studentExtracurricularExercisesSituation.setServeType("EXERCISE");
|
|
|
- List<ExtracurricularExercisesReply> studentExercises = studentExercisesMap.get(studentCoursesEntry.getKey());
|
|
|
- if(CollectionUtils.isEmpty(studentExercises)){
|
|
|
- studentExtracurricularExercisesSituation.setActualExercisesNum(0);
|
|
|
- studentExtracurricularExercisesSituation.setExercisesReplyNum(0);
|
|
|
- studentExtracurricularExercisesSituation.setExercisesMessageNum(0);
|
|
|
- studentExtracurricularExercisesSituation.setExercisesMessageTimelyNum(0);
|
|
|
- results.add(studentExtracurricularExercisesSituation);
|
|
|
- continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ List<StudentServeCourseHomeworkDto> studentHomeworks = studentHomeworkMap.get(studentCoursesEntry.getKey());
|
|
|
+ if(!CollectionUtils.isEmpty(studentHomeworks)){
|
|
|
+ studentExtracurricularExercisesSituation.setActualExercisesNum(1);
|
|
|
+ long replyNum = studentHomeworks.stream().filter(e -> YesOrNoEnum.YES.equals(e.getStatus())).count();
|
|
|
+ studentExtracurricularExercisesSituation.setExercisesReplyNum(replyNum>0?1:0);
|
|
|
+ long haveSubmitTimes = studentHomeworks.stream().filter(e -> Objects.nonNull(e.getSubmitTime())).count();
|
|
|
+ if(replyNum>0&&haveSubmitTimes>0){
|
|
|
+ Date lastSubmitTime = studentHomeworks.stream().filter(e->Objects.nonNull(e.getSubmitTime())).max(Comparator.comparing(StudentServeCourseHomeworkDto::getSubmitTime)).get().getSubmitTime();
|
|
|
+ studentExtracurricularExercisesSituation.setLastSubmitTime(lastSubmitTime);
|
|
|
}
|
|
|
+ int exercisesMessageNum=0;
|
|
|
+ int exercisesMessageTimelyNum=0;
|
|
|
+ for (StudentServeCourseHomeworkDto studentHomework : studentHomeworks) {
|
|
|
+ if(!YesOrNoEnum.YES.equals(studentHomework.getStatus())){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if(!YesOrNoEnum.YES.equals(studentHomework.getIsReplied())){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ exercisesMessageNum+=1;
|
|
|
+ if(new Integer(1).equals(studentHomework.getIsRepliedTimely())){
|
|
|
+ exercisesMessageTimelyNum+=1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ studentExtracurricularExercisesSituation.setExercisesMessageNum(exercisesMessageNum>0?1:0);
|
|
|
+ studentExtracurricularExercisesSituation.setExercisesMessageTimelyNum(exercisesMessageTimelyNum>0?1:0);
|
|
|
+ }
|
|
|
+
|
|
|
+ List<ExtracurricularExercisesReply> studentExercises = studentExercisesMap.get(studentCoursesEntry.getKey());
|
|
|
+ if(!CollectionUtils.isEmpty(studentExercises)){
|
|
|
studentExtracurricularExercisesSituation.setActualExercisesNum(1);
|
|
|
long replyNum = studentExercises.stream().filter(e -> e.getStatus()==1).count();
|
|
|
- studentExtracurricularExercisesSituation.setExercisesReplyNum(replyNum>0?1:0);
|
|
|
+ if(studentExtracurricularExercisesSituation.getExercisesReplyNum()<=0){
|
|
|
+ studentExtracurricularExercisesSituation.setExercisesReplyNum(replyNum>0?1:0);
|
|
|
+ }
|
|
|
long haveSubmitTimes = studentExercises.stream().filter(e->Objects.nonNull(e.getSubmitTime())).count();
|
|
|
if(replyNum>0&&haveSubmitTimes>0){
|
|
|
Date lastSubmitTime = studentExercises.stream().filter(e->Objects.nonNull(e.getSubmitTime())).max(Comparator.comparing(ExtracurricularExercisesReply::getSubmitTime)).get().getSubmitTime();
|
|
|
- studentExtracurricularExercisesSituation.setLastSubmitTime(lastSubmitTime);
|
|
|
+ if(lastSubmitTime.after(studentExtracurricularExercisesSituation.getLastSubmitTime())){
|
|
|
+ studentExtracurricularExercisesSituation.setLastSubmitTime(lastSubmitTime);
|
|
|
+ }
|
|
|
}
|
|
|
int exercisesMessageNum=0;
|
|
|
int exercisesMessageTimelyNum=0;
|
|
@@ -198,10 +198,14 @@ public class StudentServeServiceImpl implements StudentServeService {
|
|
|
exercisesMessageTimelyNum+=1;
|
|
|
}
|
|
|
}
|
|
|
- studentExtracurricularExercisesSituation.setExercisesMessageNum(exercisesMessageNum>0?1:0);
|
|
|
- studentExtracurricularExercisesSituation.setExercisesMessageTimelyNum(exercisesMessageTimelyNum>0?1:0);
|
|
|
- results.add(studentExtracurricularExercisesSituation);
|
|
|
+ if(studentExtracurricularExercisesSituation.getExercisesMessageNum()<=0){
|
|
|
+ studentExtracurricularExercisesSituation.setExercisesMessageNum(exercisesMessageNum>0?1:0);
|
|
|
+ }
|
|
|
+ if(studentExtracurricularExercisesSituation.getExercisesMessageTimelyNum()<=0){
|
|
|
+ studentExtracurricularExercisesSituation.setExercisesMessageTimelyNum(exercisesMessageTimelyNum>0?1:0);
|
|
|
+ }
|
|
|
}
|
|
|
+ results.add(studentExtracurricularExercisesSituation);
|
|
|
}
|
|
|
|
|
|
studentExtracurricularExercisesSituationDao.deleteByMonday(monDayDate.toString());
|