瀏覽代碼

feat:智能陪练一期

Joburgess 3 年之前
父節點
當前提交
3a02644850

+ 3 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dao/SysMusicCompareRecordDao.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.dao;
 
 import com.ym.mec.biz.dal.dto.*;
+import com.ym.mec.biz.dal.enums.HeardLevelEnum;
 import com.ym.mec.common.dal.BaseDAO;
 import com.ym.mec.biz.dal.entity.SysMusicCompareRecord;
 import org.apache.ibatis.annotations.Param;
@@ -20,7 +21,8 @@ public interface SysMusicCompareRecordDao extends BaseDAO<Long, SysMusicCompareR
      * @return java.util.List<com.ym.mec.biz.dal.dto.MusicCompareRankingDto>
      */
     List<MusicCompareRankingDto> getUserTrainStat(@Param("startTime") String startTime,
-                                                  @Param("endTime") String endTime);
+                                                  @Param("endTime") String endTime,
+                                                  @Param("heardLevel")HeardLevelEnum heardLevel);
 
     /**
      * @describe 获取用户最后一次评测数据

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/dto/SoundCompareHelper.java

@@ -37,7 +37,7 @@ public class SoundCompareHelper implements PitchDetectionHandler {
     private Integer subjectId;
 
     @ApiModelProperty(value = "评测等级")
-    private HeardLevelEnum heardLevel = HeardLevelEnum.BEGINNER;
+    private HeardLevelEnum heardLevel = HeardLevelEnum.ADVANCED;
 
     @ApiModelProperty(value = "小节开始时间")
     private double measureStartTime = 0;

+ 11 - 0
mec-biz/src/main/java/com/ym/mec/biz/dal/page/SysMusicCompareRecordQueryInfo.java

@@ -1,6 +1,7 @@
 package com.ym.mec.biz.dal.page;
 
 import com.ym.mec.biz.dal.enums.FeatureType;
+import com.ym.mec.biz.dal.enums.HeardLevelEnum;
 import com.ym.mec.common.page.QueryInfo;
 import io.swagger.annotations.ApiModelProperty;
 import org.apache.ibatis.annotations.Param;
@@ -28,6 +29,8 @@ public class SysMusicCompareRecordQueryInfo extends QueryInfo {
 
     private FeatureType featureType;
 
+    private HeardLevelEnum heardLevel;
+
     public FeatureType getFeatureType() {
         return featureType;
     }
@@ -91,4 +94,12 @@ public class SysMusicCompareRecordQueryInfo extends QueryInfo {
     public void setSortField(String sortField) {
         this.sortField = sortField;
     }
+
+    public HeardLevelEnum getHeardLevel() {
+        return heardLevel;
+    }
+
+    public void setHeardLevel(HeardLevelEnum heardLevel) {
+        this.heardLevel = heardLevel;
+    }
 }

+ 2 - 2
mec-biz/src/main/java/com/ym/mec/biz/service/impl/SysMusicCompareRecordServiceImpl.java

@@ -107,7 +107,7 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 		StatDto result = new StatDto();
 		MusicCompareRankingDto head = new MusicCompareRankingDto();
 		head.setUserId(queryInfo.getUserId());
-		List<MusicCompareRankingDto> userTrainStat = sysMusicCompareRecordDao.getUserTrainStat(queryInfo.getStartTime(), queryInfo.getEndTime());
+		List<MusicCompareRankingDto> userTrainStat = sysMusicCompareRecordDao.getUserTrainStat(queryInfo.getStartTime(), queryInfo.getEndTime(), queryInfo.getHeardLevel());
 		List<MusicCompareRankingDto> detail = new ArrayList<>();
 		switch (queryInfo.getOrderType()){
 			case 1:
@@ -121,7 +121,7 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM
 				break;
 		}
 
-		detail = userTrainStat.subList(0, 10);
+		detail = userTrainStat.stream().limit(10).collect(Collectors.toList());
 		List<Integer> studentIds = detail.stream().map(MusicCompareRankingDto::getUserId).collect(Collectors.toList());
 		Map<Integer, String> studentSubjectMap = new HashMap<>();
 		if(!CollectionUtils.isEmpty(studentIds)){

+ 3 - 0
mec-biz/src/main/resources/config/mybatis/SysMusicCompareRecordMapper.xml

@@ -152,6 +152,9 @@
 			LEFT JOIN sys_music_score sms ON smcr.sys_music_score_id_ = sms.id_
 		WHERE EXISTS (SELECT user_id_ FROM student WHERE user_id_=smcr.user_id_)
 		AND DATE_FORMAT(smcr.create_time_, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}
+		<if test="heardLevel!=null">
+			AND smcr.heard_level_ = #{heardLevel, typeHandler=com.ym.mec.common.dal.CustomEnumTypeHandler}
+		</if>
 		GROUP BY smcr.user_id_
 	</select>