소스 검색

1、服务指标逻辑调整;

Joburgess 5 년 전
부모
커밋
af34b0689b
1개의 변경된 파일57개의 추가작업 그리고 53개의 파일을 삭제
  1. 57 53
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServeServiceImpl.java

+ 57 - 53
mec-biz/src/main/java/com/ym/mec/biz/service/impl/StudentServeServiceImpl.java

@@ -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());