| 
					
				 | 
			
			
				@@ -11,6 +11,7 @@ import com.yonge.cooleshow.biz.dal.enums.TimeTypeEnum; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.service.UserAccountRecordService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.support.DistributedLock; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.vo.res.AccountTotal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.yonge.cooleshow.biz.dal.vo.res.HomeTotalTeacher; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.common.entity.HttpResponseResult; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.common.exception.BizException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.toolset.utils.date.DateUtil; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -23,6 +24,8 @@ import com.yonge.cooleshow.biz.dal.dto.search.UserAccountSearch; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.dao.UserAccountDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.yonge.cooleshow.biz.dal.service.UserAccountService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.math.BigDecimal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.math.RoundingMode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.Calendar; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.concurrent.Future; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -73,7 +76,39 @@ public class UserAccountServiceImpl extends ServiceImpl<UserAccountDao, UserAcco 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public HttpResponseResult<AccountTotal> accountTotal(TotalReq totalReq) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         List<AccountTotal> infoList= baseMapper.accountTotal(totalReq); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        BigDecimal practiceAmount = BigDecimal.ZERO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        BigDecimal liveAmount = BigDecimal.ZERO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        BigDecimal musicAmount = BigDecimal.ZERO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        for (AccountTotal info : infoList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            info.setPracticeAmount(null == info.getPracticeAmount() ? BigDecimal.ZERO : info.getPracticeAmount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            info.setLiveAmount(null == info.getLiveAmount() ? BigDecimal.ZERO  : info.getLiveAmount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            info.setMusicAmount(null == info.getMusicAmount() ? BigDecimal.ZERO  : info.getMusicAmount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            practiceAmount = practiceAmount.add(info.getPracticeAmount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            liveAmount = liveAmount.add(info.getLiveAmount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            musicAmount = musicAmount.add(info.getMusicAmount()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        AccountTotal total = new AccountTotal(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        total.setTotalInAmount(practiceAmount.add(liveAmount).add(musicAmount)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        total.setPracticeAmount(practiceAmount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        BigDecimal practiceRate = total.getPracticeAmount() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .divide(total.getTotalInAmount(), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        total.setPracticeRate(practiceRate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        total.setLiveAmount(liveAmount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        BigDecimal liveRate = total.getLiveAmount() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .divide(total.getTotalInAmount(), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        total.setLiveRate(liveRate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        total.setMusicAmount(musicAmount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        BigDecimal musicRate = total.getMusicAmount() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                .divide(total.getTotalInAmount(), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        total.setMusicRate(musicRate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        total.setInfoList(infoList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return HttpResponseResult.succeed(total); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private HttpResponseResult<UserAccountRecord> doAccountChange(UserAccountRecordDto accountRecordDto) { 
			 |