|  | @@ -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)) {
 |