소스 검색

酷乐秀优化

zouxuan 6 달 전
부모
커밋
622767a05d
1개의 변경된 파일29개의 추가작업 그리고 27개의 파일을 삭제
  1. 29 27
      cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/HomeServiceImpl.java

+ 29 - 27
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/service/impl/HomeServiceImpl.java

@@ -394,25 +394,6 @@ public class HomeServiceImpl implements HomeService {
     @Override
     public TeacherIndexWrapper.TeacherPracticeHome getTeacherPracticeHome(TeacherIndexWrapper.SummarySearch summarySearch) {
         TeacherIndexWrapper.TeacherPracticeHome teacherPracticeHome = new TeacherIndexWrapper.TeacherPracticeHome();
-        //获取老师关联的学员
-        List<Long> studentIds = teacherService.getDao().getStudentIds(summarySearch.getTeacherId(), summarySearch.getSubjectId(), summarySearch.getStartTime(), summarySearch.getEndTime());
-        if(CollectionUtils.isEmpty(studentIds)){
-            return teacherPracticeHome;
-        }
-        //获取学员练习汇总
-        TeacherIndexWrapper.PracticeSummaryDto practiceSummary = sysMusicCompareRecordService.getDao().getStudentTrainOverView(studentIds,summarySearch);
-        //计算平均练习时长
-        if(Objects.nonNull(practiceSummary)
-                && practiceSummary.getPracticeCount().compareTo(BigDecimal.ZERO) > 0
-                && practiceSummary.getTotalPracticeTime().compareTo(BigDecimal.ZERO) > 0){
-            //舍掉小数
-            practiceSummary.setTotalPracticeTime(practiceSummary.getTotalPracticeTime().setScale(0, RoundingMode.DOWN));
-            practiceSummary.setAveragePracticeTime(practiceSummary.getTotalPracticeTime()
-                    .divide(practiceSummary.getPracticeCount(), 0, RoundingMode.DOWN));
-        }
-        teacherPracticeHome.setPracticeSummary(practiceSummary);
-
-        //获取学员练习时长
         //获取分组条件,如果所选时间段只有一天,则按小时分组,超过一个月按天分组,超过一年按月分组
         String groupBy;
         List<String> dateList;
@@ -434,21 +415,42 @@ public class HomeServiceImpl implements HomeService {
                 dateList = DateUtil.getYearList(startDate,endDate);
             }
         }
-        List<TeacherIndexWrapper.PracticeTimeDto> studentTrainTime = sysMusicCompareRecordService.getDao().getStudentTrainTime(studentIds, summarySearch, groupBy);
+        //获取老师关联的学员
+        List<Long> studentIds = teacherService.getDao().getStudentIds(summarySearch.getTeacherId(), summarySearch.getSubjectId(), summarySearch.getStartTime(), summarySearch.getEndTime());
+        List<TeacherIndexWrapper.PracticeTimeDto> studentTrainTime = new ArrayList<>();
+        List<TeacherIndexWrapper.PracticeTimeDto> studentTrainCount = new ArrayList<>();
+        if(CollectionUtils.isNotEmpty(studentIds)){
+            //获取学员练习汇总
+            TeacherIndexWrapper.PracticeSummaryDto practiceSummary = sysMusicCompareRecordService.getDao().getStudentTrainOverView(studentIds,summarySearch);
+            //计算平均练习时长
+            if(Objects.nonNull(practiceSummary)
+                    && practiceSummary.getPracticeCount().compareTo(BigDecimal.ZERO) > 0
+                    && practiceSummary.getTotalPracticeTime().compareTo(BigDecimal.ZERO) > 0){
+                //舍掉小数
+                practiceSummary.setTotalPracticeTime(practiceSummary.getTotalPracticeTime().setScale(0, RoundingMode.DOWN));
+                practiceSummary.setAveragePracticeTime(practiceSummary.getTotalPracticeTime()
+                        .divide(practiceSummary.getPracticeCount(), 0, RoundingMode.DOWN));
+            }
+            teacherPracticeHome.setPracticeSummary(practiceSummary);
+            //获取学员练习时长
+            studentTrainTime = sysMusicCompareRecordService.getDao().getStudentTrainTime(studentIds, summarySearch, groupBy);
+            //练习人数
+            studentTrainCount = sysMusicCompareRecordService.getDao().getStudentTrainCount(studentIds, summarySearch, groupBy);
+        }
+
         //补全时间段
         teacherPracticeHome.setPracticeTimes(fillData(studentTrainTime,dateList));
-        //练习人数
-        List<TeacherIndexWrapper.PracticeTimeDto> studentTrainCount = sysMusicCompareRecordService.getDao().getStudentTrainCount(studentIds, summarySearch, groupBy);
-        //补全时间段
         teacherPracticeHome.setPracticeCounts(fillData(studentTrainCount,dateList));
-
         return teacherPracticeHome;
     }
 
     //数据补全,按时间顺序
     private List<TeacherIndexWrapper.PracticeTimeDto> fillData(List<TeacherIndexWrapper.PracticeTimeDto> studentTrainTime, List<String> dateList) {
-        Map<String,TeacherIndexWrapper.PracticeTimeDto> timeMap = studentTrainTime.stream()
-                .collect(Collectors.toMap(TeacherIndexWrapper.PracticeTimeDto::getDate, o -> o));
+        Map<String,TeacherIndexWrapper.PracticeTimeDto> timeMap = new HashMap<>();
+        if(CollectionUtils.isNotEmpty(studentTrainTime)){
+            timeMap = studentTrainTime.stream()
+                    .collect(Collectors.toMap(TeacherIndexWrapper.PracticeTimeDto::getDate, o -> o));
+        }
         List<TeacherIndexWrapper.PracticeTimeDto> result = new ArrayList<>();
         for (String s : dateList) {
             TeacherIndexWrapper.PracticeTimeDto practiceTimeDto = timeMap.get(s);
@@ -490,7 +492,7 @@ public class HomeServiceImpl implements HomeService {
                 studentSearch.getSubjectId(),
                 studentSearch.getStartTime(),
                 studentSearch.getEndTime());
-        if(CollectionUtils.isEmpty(studentIds)){
+        if(CollectionUtils.isNotEmpty(studentIds)){
             return Collections.emptyList();
         }
         //获取间隔天数