|  | @@ -516,7 +516,8 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |          orderAmount = orderAmount.add(courseFee);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          BigDecimal remitFee = BigDecimal.ZERO;
 | 
	
		
			
				|  |  | -        BigDecimal courseRemitFee = BigDecimal.ZERO;
 | 
	
		
			
				|  |  | +        BigDecimal courseRemitFee = BigDecimal.ZERO; //课程减免费用
 | 
	
		
			
				|  |  | +        boolean remitCourseRFeeFlag = false; //减免课程费用标识
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          //乐器及打包辅件
 | 
	
		
			
				|  |  |          List<MusicGroupSubjectGoodsGroup> goodsGroups = new ArrayList<>();
 | 
	
	
		
			
				|  | @@ -560,8 +561,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |                  Map<String, BigDecimal> groupType = JSONObject.parseObject(goodsGroup.getKitGroupPurchaseTypeJson(), new TypeReference<Map<String, BigDecimal>>() {
 | 
	
		
			
				|  |  |                  });
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                Map<String, BigDecimal> coursePurchase = JSONObject.parseObject(goodsGroup.getCoursePurchaseTypeJson(), new TypeReference<Map<String, BigDecimal>>() {
 | 
	
		
			
				|  |  | -                });
 | 
	
		
			
				|  |  |                  if (goodsGroup.getType().equals(GoodsType.INSTRUMENT)) {
 | 
	
		
			
				|  |  |                      String kitGroupPurchaseType = registerPayDto.getGoodsGroups().get(goodsGroup.getId());
 | 
	
		
			
				|  |  |                      if (!groupType.containsKey(kitGroupPurchaseType)) {
 | 
	
	
		
			
				|  | @@ -569,17 +568,16 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                      if (!kitGroupPurchaseType.equals("GROUP")) {
 | 
	
		
			
				|  |  |                          goodsGroup.setPrice(kitGroupPurchaseType.equals("FREE") ? new BigDecimal(0) : goodsGroup.getDepositFee());
 | 
	
		
			
				|  |  | +                    }else{
 | 
	
		
			
				|  |  | +                        remitCourseRFeeFlag  = goodsGroup.getGroupRemissionCourseFee().equals(1);
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                      goodsGroup.setKitGroupPurchaseType(KitGroupPurchaseTypeEnum.valueOf(kitGroupPurchaseType));
 | 
	
		
			
				|  |  |                      remitFee = groupType.get(kitGroupPurchaseType) == null ? BigDecimal.ZERO : groupType.get(kitGroupPurchaseType);
 | 
	
		
			
				|  |  | -                    if (coursePurchase != null) {
 | 
	
		
			
				|  |  | -                        courseRemitFee = coursePurchase.get(kitGroupPurchaseType) == null ? BigDecimal.ZERO : coursePurchase.get(kitGroupPurchaseType);
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  orderAmount = orderAmount.add(goodsGroup.getPrice());
 | 
	
		
			
				|  |  |                  goodsGroup.setGoodsList(goodsService.findGoodsByIds(goodsGroup.getGoodsIdList()));
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -            orderAmount = orderAmount.subtract(remitFee).subtract(courseRemitFee);
 | 
	
		
			
				|  |  | +            orderAmount = orderAmount.subtract(remitFee);
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          //单独辅件
 | 
	
	
		
			
				|  | @@ -625,6 +623,10 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |          if (registerPayDto.getNewCourse() != null && registerPayDto.getNewCourse().size() > 0) {
 | 
	
		
			
				|  |  |              newCourses = musicGroupPaymentCalenderCourseSettingsDao.getCalenderCourseSettings(registerPayDto.getNewCourse());
 | 
	
		
			
				|  |  |              for (MusicGroupPaymentCalenderCourseSettings calenderCourseSetting : newCourses) {
 | 
	
		
			
				|  |  | +                if(remitCourseRFeeFlag && !calenderCourseSetting.getIsStudentOptional()){
 | 
	
		
			
				|  |  | +                    courseRemitFee = courseRemitFee.add(calenderCourseSetting.getCourseCurrentPrice());
 | 
	
		
			
				|  |  | +                    continue;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  |                  orderAmount = orderAmount.add(calenderCourseSetting.getCourseCurrentPrice());
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 | 
	
	
		
			
				|  | @@ -734,7 +736,9 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |          orderAmount = orderAmount.add(courseFee);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          BigDecimal remitFee = BigDecimal.ZERO;
 | 
	
		
			
				|  |  | -        BigDecimal courseRemitFee = BigDecimal.ZERO;
 | 
	
		
			
				|  |  | +        BigDecimal courseRemitFee = BigDecimal.ZERO; //课程减免费用
 | 
	
		
			
				|  |  | +        boolean remitCourseRFeeFlag = false; //减免课程费用标识
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          //乐器及打包辅件
 | 
	
		
			
				|  |  |          List<MusicGroupSubjectGoodsGroup> goodsGroups = new ArrayList<>();
 | 
	
	
		
			
				|  | @@ -777,8 +781,6 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |              for (MusicGroupSubjectGoodsGroup goodsGroup : goodsGroups) {
 | 
	
		
			
				|  |  |                  Map<String, BigDecimal> groupType = JSONObject.parseObject(goodsGroup.getKitGroupPurchaseTypeJson(), new TypeReference<Map<String, BigDecimal>>() {
 | 
	
		
			
				|  |  |                  });
 | 
	
		
			
				|  |  | -                Map<String, BigDecimal> coursePurchase = JSONObject.parseObject(goodsGroup.getCoursePurchaseTypeJson(), new TypeReference<Map<String, BigDecimal>>() {
 | 
	
		
			
				|  |  | -                });
 | 
	
		
			
				|  |  |                  if (goodsGroup.getType().equals(GoodsType.INSTRUMENT)) {
 | 
	
		
			
				|  |  |                      String kitGroupPurchaseType = registerPayDto.getGoodsGroups().get(goodsGroup.getId());
 | 
	
		
			
				|  |  |                      if (!groupType.containsKey(kitGroupPurchaseType)) {
 | 
	
	
		
			
				|  | @@ -786,12 +788,11 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                      if (!kitGroupPurchaseType.equals("GROUP")) {
 | 
	
		
			
				|  |  |                          goodsGroup.setPrice(kitGroupPurchaseType.equals("FREE") ? new BigDecimal(0) : goodsGroup.getDepositFee());
 | 
	
		
			
				|  |  | +                    }else {
 | 
	
		
			
				|  |  | +                        remitCourseRFeeFlag = goodsGroup.getGroupRemissionCourseFee().equals(1);
 | 
	
		
			
				|  |  |                      }
 | 
	
		
			
				|  |  |                      goodsGroup.setKitGroupPurchaseType(KitGroupPurchaseTypeEnum.valueOf(kitGroupPurchaseType));
 | 
	
		
			
				|  |  |                      remitFee = groupType.get(kitGroupPurchaseType);
 | 
	
		
			
				|  |  | -                    if (coursePurchase != null) {
 | 
	
		
			
				|  |  | -                        courseRemitFee = coursePurchase.get(kitGroupPurchaseType) == null ? BigDecimal.ZERO : coursePurchase.get(kitGroupPurchaseType);
 | 
	
		
			
				|  |  | -                    }
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |                  orderAmount = orderAmount.add(goodsGroup.getPrice());
 | 
	
		
			
				|  |  |                  goodsGroup.setGoodsList(goodsService.findGoodsByIds(goodsGroup.getGoodsIdList()));
 | 
	
	
		
			
				|  | @@ -842,6 +843,10 @@ public class MusicGroupServiceImpl extends BaseServiceImpl<String, MusicGroup> i
 | 
	
		
			
				|  |  |          if (registerPayDto.getNewCourse() != null && registerPayDto.getNewCourse().size() > 0) {
 | 
	
		
			
				|  |  |              newCourses = musicGroupPaymentCalenderCourseSettingsDao.getCalenderCourseSettings(registerPayDto.getNewCourse());
 | 
	
		
			
				|  |  |              for (MusicGroupPaymentCalenderCourseSettings calenderCourseSetting : newCourses) {
 | 
	
		
			
				|  |  | +                if(remitCourseRFeeFlag && !calenderCourseSetting.getIsStudentOptional()){
 | 
	
		
			
				|  |  | +                    courseRemitFee = courseRemitFee.add(calenderCourseSetting.getCourseCurrentPrice());
 | 
	
		
			
				|  |  | +                    continue;
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  |                  orderAmount = orderAmount.add(calenderCourseSetting.getCourseCurrentPrice());
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |          }
 |