| 
					
				 | 
			
			
				@@ -539,7 +539,7 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (musicSheetDto.getAuditVersion() == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             musicSheetDto.setAuditVersion(YesOrNoEnum.NO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (musicSheetDto.getChargeType().equals(ChargeTypeEnum.VIP)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (musicSheetDto.getChargeType().equals(ChargeTypeEnum.VIP) || musicSheetDto.getChargeType().equals(ChargeTypeEnum.FREE)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             musicSheetDto.setMusicPrice(BigDecimal.ZERO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -650,16 +650,24 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         BigDecimal serviceFee = new BigDecimal(musicSheetServiceFee).divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //支付金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         BigDecimal actualPrice = userOrderDetailVo.getActualPrice(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        BigDecimal expectPrice = userOrderDetailVo.getExpectPrice(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        //服务费 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        BigDecimal serviceFeeAmount = actualPrice.multiply(serviceFee).setScale(2, RoundingMode.HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //服务费  原价的平台服务费 ,减去优惠券金额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        BigDecimal serviceFeeAmount = expectPrice.multiply(serviceFee).subtract(userOrderDetailVo.getCouponAmount()).setScale(2, RoundingMode.HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (serviceFeeAmount.compareTo(BigDecimal.ZERO) <0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            serviceFeeAmount = BigDecimal.ZERO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 保存购买记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         addMusicSheetPurchaseRecord(userOrderDetailVo, actualPrice, serviceFeeAmount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (!musicSheet.getSourceType().getCode().equals(SourceTypeEnum.PLATFORM.getCode())) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 老师收入 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            BigDecimal teacherAmount = BigDecimal.ONE.subtract(serviceFee).multiply(expectPrice); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             // 加入账户 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            addTeacherAccount(userOrderDetailVo, actualPrice, serviceFeeAmount, userOrderDetailVo.getBizId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            addTeacherAccount(userOrderDetailVo, teacherAmount, userOrderDetailVo.getBizId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // 消息通知 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -754,16 +762,14 @@ public class MusicSheetServiceImpl extends ServiceImpl<MusicSheetDao, MusicSheet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 添加金额到老师账户 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param userOrderDetailVo 订单信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * @param actualPrice       付款价格 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-     * @param serviceFeeAmount  服务费 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     * @param transAmount       老师收入 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * @param musicSheetId      曲目id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private void addTeacherAccount(UserOrderDetailVo userOrderDetailVo, BigDecimal actualPrice, BigDecimal serviceFeeAmount, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private void addTeacherAccount(UserOrderDetailVo userOrderDetailVo, BigDecimal transAmount, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    Long musicSheetId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //获取账期时间 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Date accountPeriodTime = userOrderService.getAccountPeriodTime(userOrderDetailVo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        BigDecimal transAmount = actualPrice.subtract(serviceFeeAmount).setScale(2, RoundingMode.HALF_UP); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //插入老师账户变更记录-老师预收 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         userAccountService.accountRecord( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 new UserAccountRecordDto(userOrderDetailVo.getMerchId(), PostStatusEnum.WAIT, transAmount, InOrOutEnum.IN, 
			 |