| 
					
				 | 
			
			
				@@ -277,7 +277,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Transactional 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public StudentPaymentOrder addOrder(StudentRegistration studentRegistration, BigDecimal amount, String orderNo, String paymentChannel, BigDecimal courseFee, List<MusicGroupSubjectGoodsGroup> goodsGroups, List<Goods> goodsList, List<Goods> otherGoodsList, List<CourseFormDto> courseForms) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public StudentPaymentOrder addOrder(StudentRegistration studentRegistration, BigDecimal amount, String orderNo, String paymentChannel, BigDecimal courseFee, List<MusicGroupSubjectGoodsGroup> goodsGroups, List<Goods> goodsList, List<Goods> otherGoodsList, List<CourseFormDto> courseForms,BigDecimal remitFee,BigDecimal courseRemitFee) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Date date = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         StudentPaymentOrder studentPaymentOrder = new StudentPaymentOrder(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrder.setUserId(studentRegistration.getUserId()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -294,7 +294,8 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         ArrayList<StudentPaymentOrderDetail> studentPaymentOrderDetailList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         StudentPaymentOrderDetail studentPaymentOrderDetail = new StudentPaymentOrderDetail(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrderDetail.setType(OrderDetailTypeEnum.COURSE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        studentPaymentOrderDetail.setPrice(courseFee); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        studentPaymentOrderDetail.setPrice(courseFee.subtract(courseRemitFee)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        studentPaymentOrderDetail.setRemitFee(courseRemitFee); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrderDetail.setCreateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrderDetail.setUpdateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrderDetail.setPaymentOrderId(studentPaymentOrder.getId()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -312,9 +313,12 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 StudentPaymentOrderDetail studentPaymentOrderDetail4goodsGroup = new StudentPaymentOrderDetail(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                studentPaymentOrderDetail4goodsGroup.setRemitFee(BigDecimal.ZERO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 OrderDetailTypeEnum type = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (goodsGroup.getType().equals(GoodsType.INSTRUMENT)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     type = OrderDetailTypeEnum.MUSICAL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    goodsGroup.setPrice(goodsGroup.getPrice().subtract(remitFee)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    studentPaymentOrderDetail4goodsGroup.setRemitFee(remitFee); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } else if (goodsGroup.getType().equals(GoodsType.ACCESSORIES)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     type = OrderDetailTypeEnum.ACCESSORIES; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } else if (goodsGroup.getType().equals(GoodsType.OTHER)) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -431,7 +435,7 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     @Transactional 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public StudentPaymentOrder reAddOrder(Integer userId, BigDecimal amount, String orderNo, String paymentChannel, BigDecimal courseFee, List<MusicGroupSubjectGoodsGroup> goodsGroups, List<Goods> goodsList, List<Goods> otherGoodsList, String musicGroupId, StudentPaymentOrder oldOrder, List<CourseFormDto> courseForms) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public StudentPaymentOrder reAddOrder(Integer userId, BigDecimal amount, String orderNo, String paymentChannel, BigDecimal courseFee, List<MusicGroupSubjectGoodsGroup> goodsGroups, List<Goods> goodsList, List<Goods> otherGoodsList, String musicGroupId, StudentPaymentOrder oldOrder, List<CourseFormDto> courseForms,BigDecimal remitFee,BigDecimal courseRemitFee) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //关闭老订单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         oldOrder.setStatus(DealStatusEnum.CLOSE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrderService.update(oldOrder); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -451,10 +455,11 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrder.setMusicGroupId(musicGroupId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrderService.insert(studentPaymentOrder); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        ArrayList<StudentPaymentOrderDetail> studentPaymentOrderDetailList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        List<StudentPaymentOrderDetail> studentPaymentOrderDetailList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         StudentPaymentOrderDetail studentPaymentOrderDetail = new StudentPaymentOrderDetail(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrderDetail.setType(OrderDetailTypeEnum.COURSE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        studentPaymentOrderDetail.setPrice(courseFee); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        studentPaymentOrderDetail.setPrice(courseFee.subtract(courseRemitFee)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        studentPaymentOrderDetail.setRemitFee(courseRemitFee); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrderDetail.setCreateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrderDetail.setUpdateTime(date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         studentPaymentOrderDetail.setPaymentOrderId(studentPaymentOrder.getId()); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -463,9 +468,12 @@ public class StudentRegistrationServiceImpl extends BaseServiceImpl<Long, Studen 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (goodsGroups != null && goodsGroups.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 StudentPaymentOrderDetail studentPaymentOrderDetail4goodsGroup = new StudentPaymentOrderDetail(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                studentPaymentOrderDetail4goodsGroup.setRemitFee(BigDecimal.ZERO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 OrderDetailTypeEnum type = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (goodsGroup.getType().equals(GoodsType.INSTRUMENT)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     type = OrderDetailTypeEnum.MUSICAL; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    goodsGroup.setPrice(goodsGroup.getPrice().subtract(remitFee)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    studentPaymentOrderDetail4goodsGroup.setRemitFee(remitFee); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } else if (goodsGroup.getType().equals(GoodsType.ACCESSORIES)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     type = OrderDetailTypeEnum.ACCESSORIES; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } else if (goodsGroup.getType().equals(GoodsType.OTHER)) { 
			 |