| 
					
				 | 
			
			
				@@ -1,5 +1,6 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 package com.yonge.cooleshow.biz.dal.service.impl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.alibaba.fastjson.JSON; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.core.metadata.IPage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.google.common.collect.Lists; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.entity.MusicCompareRecordStat; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -7,9 +8,15 @@ import com.yonge.cooleshow.biz.dal.enums.EQueryOp; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.mapper.MusicCompareRecordStatMapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.service.MusicCompareRecordStatService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.wrapper.StatGroupWrapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.wrapper.music.MusicCompareWrapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.toolset.mybatis.support.PageUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.apache.commons.collections.CollectionUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.Objects; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * <p> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * 曲目练习统计表 服务实现类 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -45,12 +52,37 @@ public class MusicCompareRecordStatServiceImp extends ServiceImpl<MusicCompareRe 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 指标统计信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Lists.newArrayList(EQueryOp.values()).parallelStream().forEach(dataType -> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            MusicCompareWrapper.StatQueryInfo queryInfo = JSON.parseObject(info.jsonString(), MusicCompareWrapper.StatQueryInfo.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             switch (dataType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 case FUNCTION_1: // 练习曲目 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        List<StatGroupWrapper> groupWrappers = getBaseMapper().selectMusicCompareRecordStatInfo(queryInfo.trainMusic(true)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (CollectionUtils.isNotEmpty(groupWrappers)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            StatGroupWrapper groupWrapper = groupWrappers.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            wrapper.trainMusicNums(groupWrapper.getMusicNum()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    .trainDuration(groupWrapper.getDurationNum() / 60) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    .trainFrequency(groupWrapper.getFrequencyNum()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 case FUNCTION_2: // 评测曲目 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        List<StatGroupWrapper> groupWrappers = getBaseMapper().selectMusicCompareRecordStatInfo(queryInfo.evaluateMusic(true)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (CollectionUtils.isNotEmpty(groupWrappers)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            StatGroupWrapper groupWrapper = groupWrappers.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            wrapper.evaluateMusicNums(groupWrapper.getMusicNum()) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    .evaluateDuration(groupWrapper.getDurationNum() / 60) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    .evaluateFrequency(groupWrapper.getFrequencyNum()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 default: 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     break; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -58,6 +90,11 @@ public class MusicCompareRecordStatServiceImp extends ServiceImpl<MusicCompareRe 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 曲目统计信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        IPage<MusicCompareWrapper.RecordInfo> page = findMusicCompareRecordPage(PageUtil.getPage(info), info); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (Objects.nonNull(page)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            wrapper.setRecordInfos(page.getRecords()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return wrapper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -70,10 +107,11 @@ public class MusicCompareRecordStatServiceImp extends ServiceImpl<MusicCompareRe 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @return IPage<MusicCompareWrapper.RecordInfo> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public IPage<MusicCompareWrapper.RecordInfo> findMusicCompareRecordPage(IPage<Object> page, MusicCompareWrapper.StatQueryInfo query) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public IPage<MusicCompareWrapper.RecordInfo> findMusicCompareRecordPage(IPage<MusicCompareWrapper.RecordInfo> page, MusicCompareWrapper.StatQueryInfo query) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 用户曲目统计信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<MusicCompareWrapper.RecordInfo> recordInfos = getBaseMapper().selectMusicCompareRecordPage(page, query); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return page.setRecords(recordInfos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |