| 
					
				 | 
			
			
				@@ -1,6 +1,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package com.ym.mec.biz.service.impl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.alibaba.fastjson.JSON; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.alibaba.fastjson.JSONObject; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.auth.api.entity.SysUser; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.dao.StudentDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.dao.SysMusicCompareRecordDao; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -15,6 +16,7 @@ import com.ym.mec.common.page.PageInfo; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.common.service.impl.BaseServiceImpl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.util.collection.MapUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.util.date.DateUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.util.CollectionUtils; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -56,7 +58,10 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sysMusicCompareRecord.setUserId(user.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sysMusicCompareRecord.setSysMusicScoreId(soundCompareInfo.getMusicScoreId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		sysMusicCompareRecord.setBehaviorId(soundCompareInfo.getBehaviorId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		sysMusicCompareRecord.setScoreData(JSON.toJSONString(soundCompareInfo.getUserMeasureScoreMap())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		Map<String, Object> scoreData = new HashMap<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		scoreData.put("userMeasureScore", soundCompareInfo.getUserMeasureScoreMap()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		scoreData.put("musicalNotesPlayStats", soundCompareInfo.getMusicalNotesPlayStats()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		sysMusicCompareRecord.setScoreData(JSON.toJSONString(scoreData)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		if (Objects.nonNull(soundCompareInfo.getUserMeasureScoreMap()) && soundCompareInfo.getUserMeasureScoreMap().containsKey(-1)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			Map<String, Object> finalScore = soundCompareInfo.getUserMeasureScoreMap().get(-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			sysMusicCompareRecord.setScore((BigDecimal) finalScore.get("score")); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -76,6 +81,19 @@ public class SysMusicCompareRecordServiceImpl extends BaseServiceImpl<Long, SysM 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	@Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	public List<MusicalNotesPlayStatDto> getLastEvaluationMusicalNotesPlayStats(Integer userId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		SysMusicCompareRecord userLastEvaluationData = sysMusicCompareRecordDao.getUserLastEvaluationData(userId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if(StringUtils.isBlank(userLastEvaluationData.getScoreData())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return Collections.emptyList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		JSONObject jsonObject = JSON.parseObject(userLastEvaluationData.getScoreData()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		if(!jsonObject.containsKey("musicalNotesPlayStats")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+			return Collections.emptyList(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+		return jsonObject.getObject("musicalNotesPlayStats", List.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	@Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	public StatDto rankingList(Integer headUserId,int type, String startDate, String endDate) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		StatDto result = new StatDto(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		MusicCompareRankingDto head = new MusicCompareRankingDto(); 
			 |