|
@@ -428,7 +428,123 @@ public class StudentServeServiceImpl implements StudentServeService {
|
|
|
|
|
|
if(!CollectionUtils.isEmpty(results)){
|
|
|
|
|
|
+ if(CollectionUtils.isEmpty(studentIds)){
|
|
|
+ studentIds = results.stream().map(StudentExtracurricularExercisesSituation::getStudentId).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+
|
|
|
+ Map<Integer, List<StudentServeCourseHomeworkDto>> studentHomeworkMap=new HashMap<>();
|
|
|
+ Map<Integer, List<ExtracurricularExercisesReply>> studentExercisesMap=new HashMap<>();
|
|
|
+
|
|
|
+ List<StudentServeCourseHomeworkDto> allStudentHomeworks = studentCourseHomeworkDao.findStudentHomeworkWithCourseDateRange(monDayDate.toString(), sunDayDate.toString(), new ArrayList<>(studentIds));
|
|
|
+ List<StudentServeCourseHomeworkDto> studentHomeworksTmp =new ArrayList<>();
|
|
|
+ for (StudentServeCourseHomeworkDto studentHomework : allStudentHomeworks) {
|
|
|
+ LocalDate courseStartLocalDate = LocalDateTime.ofInstant(studentHomework.getCourseStartTime().toInstant(), DateUtil.zoneId).toLocalDate();
|
|
|
+ switch (courseStartLocalDate.getDayOfWeek()){
|
|
|
+ case SATURDAY:
|
|
|
+ if(DateUtil.daysBetween(studentHomework.getCourseStartTime(), studentHomework.getHomeworkCreateTime())<4){
|
|
|
+ studentHomeworksTmp.add(studentHomework);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case SUNDAY:
|
|
|
+ if(DateUtil.daysBetween(studentHomework.getCourseStartTime(), studentHomework.getHomeworkCreateTime())<3){
|
|
|
+ studentHomeworksTmp.add(studentHomework);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ LocalDate homeworkCreateTime = LocalDateTime.ofInstant(studentHomework.getHomeworkCreateTime().toInstant(), DateUtil.zoneId).toLocalDate();
|
|
|
+ if(courseStartLocalDate.get(DateUtil.weekFields.weekOfYear())==homeworkCreateTime.get(DateUtil.weekFields.weekOfYear())){
|
|
|
+ studentHomeworksTmp.add(studentHomework);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(!CollectionUtils.isEmpty(studentHomeworksTmp)){
|
|
|
+ studentHomeworkMap = studentHomeworksTmp.stream()
|
|
|
+ .collect(Collectors.groupingBy(StudentServeCourseHomeworkDto::getUserId));
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ List<ExtracurricularExercisesReply> allStudentExercises = extracurricularExercisesReplyDao.getStudentExercisesWithTimeZone(monDayDate.toString(), sunDayDate.toString(), new ArrayList<>(studentIds));
|
|
|
+ if(!CollectionUtils.isEmpty(allStudentExercises)){
|
|
|
+ studentExercisesMap = allStudentExercises.stream().collect(Collectors.groupingBy(ExtracurricularExercisesReply::getUserId));
|
|
|
+ }
|
|
|
+
|
|
|
+ for (StudentExtracurricularExercisesSituation weekServiceWithStudent : results) {
|
|
|
+ List<StudentServeCourseHomeworkDto> studentAllHomeworks = studentHomeworkMap.get(weekServiceWithStudent.getStudentId());
|
|
|
+ weekServiceWithStudent.setActualExercisesNum(0);
|
|
|
+ if(!CollectionUtils.isEmpty(studentAllHomeworks)&&weekServiceWithStudent.getServeType().equals("HOMEWORK")){
|
|
|
+ Set<String> courseIds = Arrays.stream(weekServiceWithStudent.getCourseIds().split(",")).collect(Collectors.toSet());
|
|
|
+ List<StudentServeCourseHomeworkDto> studentHomeworks = studentAllHomeworks.stream().filter(s -> courseIds.contains(s.getCourseScheduleId().toString())).collect(Collectors.toList());
|
|
|
+ if(!CollectionUtils.isEmpty(studentHomeworks)){
|
|
|
+ weekServiceWithStudent.setActualExercisesNum(1);
|
|
|
+ long replyNum = studentHomeworks.stream().filter(e -> YesOrNoEnum.YES.equals(e.getStatus())).count();
|
|
|
+ weekServiceWithStudent.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();
|
|
|
+ weekServiceWithStudent.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;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ weekServiceWithStudent.setExercisesMessageNum(exercisesMessageNum>0?1:0);
|
|
|
+ weekServiceWithStudent.setExercisesMessageTimelyNum(exercisesMessageTimelyNum>0?1:0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ List<ExtracurricularExercisesReply> studentAllExercises = studentExercisesMap.get(weekServiceWithStudent.getStudentId());
|
|
|
+ if(!CollectionUtils.isEmpty(studentAllExercises)&&weekServiceWithStudent.getServeType().equals("EXERCISE")){
|
|
|
+ List<ExtracurricularExercisesReply> studentExercises = studentAllExercises.stream().filter(s -> weekServiceWithStudent.getTeacherId().equals(s.getExtracurricularExercises().getTeacherId())).collect(Collectors.toList());
|
|
|
+ if(!CollectionUtils.isEmpty(studentExercises)){
|
|
|
+ weekServiceWithStudent.setActualExercisesNum(1);
|
|
|
+ long replyNum = studentExercises.stream().filter(e -> e.getStatus()==1).count();
|
|
|
+ if(weekServiceWithStudent.getExercisesReplyNum()<=0){
|
|
|
+ weekServiceWithStudent.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();
|
|
|
+ if(Objects.isNull(weekServiceWithStudent.getLastSubmitTime())||lastSubmitTime.after(weekServiceWithStudent.getLastSubmitTime())){
|
|
|
+ weekServiceWithStudent.setLastSubmitTime(lastSubmitTime);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ int exercisesMessageNum=0;
|
|
|
+ int exercisesMessageTimelyNum=0;
|
|
|
+ for (ExtracurricularExercisesReply studentHomework : studentExercises) {
|
|
|
+ if(!new Integer(1).equals(studentHomework.getStatus())){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if(!new Integer(1).equals(studentHomework.getIsReplied())){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ exercisesMessageNum+=1;
|
|
|
+ if(new Integer(1).equals(studentHomework.getIsRepliedTimely())){
|
|
|
+ exercisesMessageTimelyNum+=1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(weekServiceWithStudent.getExercisesMessageNum()<=0){
|
|
|
+ weekServiceWithStudent.setExercisesMessageNum(exercisesMessageNum>0?1:0);
|
|
|
+ }
|
|
|
+ if(weekServiceWithStudent.getExercisesMessageTimelyNum()<=0){
|
|
|
+ weekServiceWithStudent.setExercisesMessageTimelyNum(exercisesMessageTimelyNum>0?1:0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
studentExtracurricularExercisesSituationDao.deleteByMonday(monDayDate.toString(), studentIds);
|
|
|
+
|
|
|
BigDecimal currentPage1=BigDecimal.ONE,
|
|
|
pageSize1=new BigDecimal(10000),
|
|
|
total1=new BigDecimal(results.size()),
|
|
@@ -482,6 +598,8 @@ public class StudentServeServiceImpl implements StudentServeService {
|
|
|
// if(!CollectionUtils.isEmpty(newService))
|
|
|
// studentExtracurricularExercisesSituationDao.batchInsert(newService);
|
|
|
|
|
|
+ studentExtracurricularExercisesSituationDao.batchInsert(rows);
|
|
|
+
|
|
|
currentPage1=currentPage1.add(BigDecimal.ONE);
|
|
|
}
|
|
|
return;
|
|
@@ -490,6 +608,9 @@ public class StudentServeServiceImpl implements StudentServeService {
|
|
|
|
|
|
@Override
|
|
|
public void updateExercisesSituation(Date date,List<Integer> studentIds, Integer teacherId) {
|
|
|
+ if(true){
|
|
|
+ return;
|
|
|
+ }
|
|
|
LocalDate nowDate = LocalDateTime.ofInstant(date.toInstant(), DateUtil.zoneId).toLocalDate();
|
|
|
if(Objects.isNull(date)){
|
|
|
nowDate = LocalDateTime.now(DateUtil.zoneId).toLocalDate();
|
|
@@ -546,66 +667,70 @@ public class StudentServeServiceImpl implements StudentServeService {
|
|
|
if(!CollectionUtils.isEmpty(studentAllHomeworks)&&weekServiceWithStudent.getServeType().equals("HOMEWORK")){
|
|
|
Set<String> courseIds = Arrays.stream(weekServiceWithStudent.getCourseIds().split(",")).collect(Collectors.toSet());
|
|
|
List<StudentServeCourseHomeworkDto> studentHomeworks = studentAllHomeworks.stream().filter(s -> courseIds.contains(s.getCourseScheduleId())).collect(Collectors.toList());
|
|
|
- weekServiceWithStudent.setActualExercisesNum(1);
|
|
|
- long replyNum = studentHomeworks.stream().filter(e -> YesOrNoEnum.YES.equals(e.getStatus())).count();
|
|
|
- weekServiceWithStudent.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();
|
|
|
- weekServiceWithStudent.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;
|
|
|
+ if(!CollectionUtils.isEmpty(studentHomeworks)){
|
|
|
+ weekServiceWithStudent.setActualExercisesNum(1);
|
|
|
+ long replyNum = studentHomeworks.stream().filter(e -> YesOrNoEnum.YES.equals(e.getStatus())).count();
|
|
|
+ weekServiceWithStudent.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();
|
|
|
+ weekServiceWithStudent.setLastSubmitTime(lastSubmitTime);
|
|
|
}
|
|
|
- exercisesMessageNum+=1;
|
|
|
- if(new Integer(1).equals(studentHomework.getIsRepliedTimely())){
|
|
|
- exercisesMessageTimelyNum+=1;
|
|
|
+ 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;
|
|
|
+ }
|
|
|
}
|
|
|
+ weekServiceWithStudent.setExercisesMessageNum(exercisesMessageNum>0?1:0);
|
|
|
+ weekServiceWithStudent.setExercisesMessageTimelyNum(exercisesMessageTimelyNum>0?1:0);
|
|
|
}
|
|
|
- weekServiceWithStudent.setExercisesMessageNum(exercisesMessageNum>0?1:0);
|
|
|
- weekServiceWithStudent.setExercisesMessageTimelyNum(exercisesMessageTimelyNum>0?1:0);
|
|
|
}
|
|
|
|
|
|
List<ExtracurricularExercisesReply> studentAllExercises = studentExercisesMap.get(weekServiceWithStudent.getStudentId());
|
|
|
if(!CollectionUtils.isEmpty(studentAllExercises)&&weekServiceWithStudent.getServeType().equals("EXERCISE")){
|
|
|
List<ExtracurricularExercisesReply> studentExercises = studentAllExercises.stream().filter(s -> weekServiceWithStudent.getTeacherId().equals(s.getExtracurricularExercises().getTeacherId())).collect(Collectors.toList());
|
|
|
- weekServiceWithStudent.setActualExercisesNum(1);
|
|
|
- long replyNum = studentExercises.stream().filter(e -> e.getStatus()==1).count();
|
|
|
- if(weekServiceWithStudent.getExercisesReplyNum()<=0){
|
|
|
- weekServiceWithStudent.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();
|
|
|
- if(Objects.isNull(weekServiceWithStudent.getLastSubmitTime())||lastSubmitTime.after(weekServiceWithStudent.getLastSubmitTime())){
|
|
|
- weekServiceWithStudent.setLastSubmitTime(lastSubmitTime);
|
|
|
+ if(!CollectionUtils.isEmpty(studentExercises)){
|
|
|
+ weekServiceWithStudent.setActualExercisesNum(1);
|
|
|
+ long replyNum = studentExercises.stream().filter(e -> e.getStatus()==1).count();
|
|
|
+ if(weekServiceWithStudent.getExercisesReplyNum()<=0){
|
|
|
+ weekServiceWithStudent.setExercisesReplyNum(replyNum>0?1:0);
|
|
|
}
|
|
|
- }
|
|
|
- int exercisesMessageNum=0;
|
|
|
- int exercisesMessageTimelyNum=0;
|
|
|
- for (ExtracurricularExercisesReply studentHomework : studentExercises) {
|
|
|
- if(!new Integer(1).equals(studentHomework.getStatus())){
|
|
|
- continue;
|
|
|
+ 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();
|
|
|
+ if(Objects.isNull(weekServiceWithStudent.getLastSubmitTime())||lastSubmitTime.after(weekServiceWithStudent.getLastSubmitTime())){
|
|
|
+ weekServiceWithStudent.setLastSubmitTime(lastSubmitTime);
|
|
|
+ }
|
|
|
}
|
|
|
- if(!new Integer(1).equals(studentHomework.getIsReplied())){
|
|
|
- continue;
|
|
|
+ int exercisesMessageNum=0;
|
|
|
+ int exercisesMessageTimelyNum=0;
|
|
|
+ for (ExtracurricularExercisesReply studentHomework : studentExercises) {
|
|
|
+ if(!new Integer(1).equals(studentHomework.getStatus())){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ if(!new Integer(1).equals(studentHomework.getIsReplied())){
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ exercisesMessageNum+=1;
|
|
|
+ if(new Integer(1).equals(studentHomework.getIsRepliedTimely())){
|
|
|
+ exercisesMessageTimelyNum+=1;
|
|
|
+ }
|
|
|
}
|
|
|
- exercisesMessageNum+=1;
|
|
|
- if(new Integer(1).equals(studentHomework.getIsRepliedTimely())){
|
|
|
- exercisesMessageTimelyNum+=1;
|
|
|
+ if(weekServiceWithStudent.getExercisesMessageNum()<=0){
|
|
|
+ weekServiceWithStudent.setExercisesMessageNum(exercisesMessageNum>0?1:0);
|
|
|
+ }
|
|
|
+ if(weekServiceWithStudent.getExercisesMessageTimelyNum()<=0){
|
|
|
+ weekServiceWithStudent.setExercisesMessageTimelyNum(exercisesMessageTimelyNum>0?1:0);
|
|
|
}
|
|
|
- }
|
|
|
- if(weekServiceWithStudent.getExercisesMessageNum()<=0){
|
|
|
- weekServiceWithStudent.setExercisesMessageNum(exercisesMessageNum>0?1:0);
|
|
|
- }
|
|
|
- if(weekServiceWithStudent.getExercisesMessageTimelyNum()<=0){
|
|
|
- weekServiceWithStudent.setExercisesMessageTimelyNum(exercisesMessageTimelyNum>0?1:0);
|
|
|
}
|
|
|
}
|
|
|
}
|