Browse Source

酷乐秀优化

zouxuan 4 months ago
parent
commit
d60fcc77de

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

@@ -404,7 +404,8 @@ public class HomeServiceImpl implements HomeService {
         if(Objects.nonNull(practiceSummary)
                 && practiceSummary.getPracticeCount().compareTo(BigDecimal.ZERO) > 0
                 && practiceSummary.getTotalPracticeTime().compareTo(BigDecimal.ZERO) > 0){
-            practiceSummary.setAveragePracticeTime(practiceSummary.getTotalPracticeTime().divide(practiceSummary.getPracticeCount(), 0, BigDecimal.ROUND_HALF_UP));
+            practiceSummary.setAveragePracticeTime(practiceSummary.getTotalPracticeTime()
+                    .divide(practiceSummary.getPracticeCount(), 0, BigDecimal.ROUND_HALF_UP));
         }
         teacherPracticeHome.setPracticeSummary(practiceSummary);
 
@@ -489,6 +490,10 @@ public class HomeServiceImpl implements HomeService {
         if(CollectionUtils.isEmpty(studentIds)){
             return Collections.emptyList();
         }
+        //获取间隔天数
+        int days = DateUtil.daysBetween(DateUtil.strToDate(studentSearch.getStartTime(), DateUtil.DEFAULT_PATTERN),
+                DateUtil.strToDate(studentSearch.getEndTime(), DateUtil.DEFAULT_PATTERN)) + 1;
+        studentSearch.setIntervalDays(days);
         //获取学员练习汇总
         return sysMusicCompareRecordService.getDao().getStudentTrainOverViewList(studentIds,studentSearch);
     }

+ 3 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/wrapper/TeacherIndexWrapper.java

@@ -57,6 +57,9 @@ public class TeacherIndexWrapper {
 
         @ApiModelProperty("查询条数")
         private Integer limit = 10;
+
+        @ApiModelProperty("间隔天数")
+        private Integer intervalDays;
     }
 
     @Data

+ 1 - 1
cooleshow-user/user-biz/src/main/resources/config/mybatis/SysMusicCompareRecordMapper.xml

@@ -637,7 +637,7 @@
 			resultType="com.yonge.cooleshow.biz.dal.wrapper.TeacherIndexWrapper$StudentPracticeSummaryDto">
 		select smcr.user_id_ userId,su.username_ studentName,su.avatar_ avatar,sb.name_ subjectName,SUM(smcr.play_time_) totalPracticeTime,
 		       COUNT(DISTINCT DATE_FORMAT(smcr.create_time_, '%Y-%m-%d')) practiceDays,
-		       SUM(smcr.play_time_) / COUNT(DISTINCT DATE_FORMAT(smcr.create_time_, '%Y-%m-%d')) averagePracticeTime
+		       SUM(smcr.play_time_) / ${param.intervalDays} averagePracticeTime
 		from sys_music_compare_record smcr
 				 left join sys_user su ON su.id_ = smcr.user_id_
 				 left join student st ON st.user_id_ = su.id_