| 
					
				 | 
			
			
				@@ -3,6 +3,7 @@ package com.ym.mec.biz.service.impl; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import static com.ym.mec.biz.dal.enums.DealStatusEnum.SUCCESS; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.dao.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.ym.mec.biz.dal.dto.SubjectChangeParamDto; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.entity.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.enums.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import com.ym.mec.biz.dal.page.SubjectChangeQueryInfo; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -114,10 +115,10 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public Map payChange(Integer id, BigDecimal viewAmount, Boolean isUseBalancePayment, Boolean isRepay) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public Map payChange(SubjectChangeParamDto subjectChangeParamDto) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Date date = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        SubjectChange subjectChange = subjectChangeDao.get(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (isRepay) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        SubjectChange subjectChange = subjectChangeDao.get(subjectChangeParamDto.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (subjectChangeParamDto.getRepay()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             StudentPaymentOrder studentPaymentOrder = studentPaymentOrderService.get(subjectChange.getOrderId().longValue()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				              
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if(studentPaymentOrder != null && studentPaymentOrder.getStatus() == DealStatusEnum.ING){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -160,13 +161,12 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         String channelType = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        StudentPaymentOrder studentPaymentOrder = sysCouponCodeService.use(subjectChangeParamDto.getCouponIdList(),amount,true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        amount = studentPaymentOrder.getActualAmount(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrder.setUserId(subjectChange.getStudentId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrder.setGroupType(GroupType.SUBJECT_CHANGE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrder.setOrderNo(orderNo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrder.setType(OrderTypeEnum.SUBJECT_CHANGE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        studentPaymentOrder.setExpectAmount(amount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        studentPaymentOrder.setActualAmount(amount); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrder.setStatus(DealStatusEnum.ING); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrder.setMusicGroupId(subjectChange.getId().toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrder.setPaymentChannel("BALANCE"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -186,12 +186,12 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrder.setVersion(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (amount.compareTo(viewAmount) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (amount.compareTo(subjectChangeParamDto.getAmount()) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             throw new BizException("价格异常"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         BigDecimal balance = BigDecimal.ZERO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (isUseBalancePayment != null && isUseBalancePayment && amount.compareTo(BigDecimal.ZERO) > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (subjectChangeParamDto.getUseBalancePayment() && amount.compareTo(BigDecimal.ZERO) > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             SysUserCashAccount userCashAccount = sysUserCashAccountService.getLocked(subjectChange.getStudentId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (userCashAccount == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 throw new BizException("用户账户找不到"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -204,7 +204,7 @@ public class SubjectChangeServiceImpl extends BaseServiceImpl<Integer, SubjectCh 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 sysUserCashAccountService.updateBalance(subjectChange.getStudentId(), balance.negate(), PlatformCashAccountDetailTypeEnum.PAY_FEE, "乐器维修"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (amount.compareTo(viewAmount) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (amount.compareTo(subjectChangeParamDto.getAmount()) != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             throw new BizException("价格异常"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrderService.update(studentPaymentOrder); 
			 |