|  | @@ -1966,6 +1966,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |          VipGroupSalarySettlementTypeDto vipOfflineSalarySettlement = null;
 | 
	
		
			
				|  |  |          VipGroupSalarySettlementTypeDto giveVipOfflineSalarySettlement = null;
 | 
	
		
			
				|  |  |          BigDecimal discount = new BigDecimal(100);
 | 
	
		
			
				|  |  | +        BigDecimal totalPrice = null;
 | 
	
		
			
				|  |  |          if (vipGroup.getVipGroupActivityId() != null) {
 | 
	
		
			
				|  |  |              VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(vipGroup.getVipGroupActivityId());
 | 
	
		
			
				|  |  |              discount = vipGroupActivity.getDiscount();
 | 
	
	
		
			
				|  | @@ -1975,7 +1976,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              vipOfflineSalarySettlement = vipGroupSalarySettlementDto.getOfflineSalarySettlement();
 | 
	
		
			
				|  |  |              giveVipOfflineSalarySettlement = vipGroupSalarySettlementDto.getGiveVipOfflineSalarySettlement();
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | +            if(vipGroupActivity.getFixedCourseNumFlag()){
 | 
	
		
			
				|  |  | +                totalPrice = vipGroupActivity.getMarketPrice();
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |              //是否是赠送课程
 | 
	
		
			
				|  |  |              ActivityUserMapper activityUserMapper = activityUserMapperService.findVipUserMapper(vipGroup.getId(), "VIP", null);
 | 
	
		
			
				|  |  |              if (activityUserMapper != null) {
 | 
	
	
		
			
				|  | @@ -1985,35 +1988,35 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |                      vipOfflineSalarySettlement = vipGroupSalarySettlementDto.getOfflineSalarySettlement();
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        BigDecimal onlineClassesUnitPrice = vipGroup.getOnlineClassesUnitPrice();
 | 
	
		
			
				|  |  | -        if (Objects.isNull(onlineClassesUnitPrice)) {
 | 
	
		
			
				|  |  | -            throw new BizException("课程单价异常");
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        BigDecimal offlineClassesUnitPrice = vipGroup.getOfflineClassesUnitPrice();
 | 
	
		
			
				|  |  | -        if (Objects.isNull(offlineClassesUnitPrice)) {
 | 
	
		
			
				|  |  | -            throw new BizException("课程单价异常");
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | -        BigDecimal offlineClassNum = new BigDecimal(vipGroup.getOfflineClassesNum());
 | 
	
		
			
				|  |  | -        BigDecimal onlineClassNum = new BigDecimal(vipGroup.getOnlineClassesNum());
 | 
	
		
			
				|  |  | -        BigDecimal onlineVipGroupCharge = onlineClassesUnitPrice.multiply(onlineClassNum);
 | 
	
		
			
				|  |  | +        if(totalPrice == null){
 | 
	
		
			
				|  |  | +            BigDecimal onlineClassesUnitPrice = vipGroup.getOnlineClassesUnitPrice();
 | 
	
		
			
				|  |  | +            if (Objects.isNull(onlineClassesUnitPrice)) {
 | 
	
		
			
				|  |  | +                throw new BizException("课程单价异常");
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            BigDecimal offlineClassesUnitPrice = vipGroup.getOfflineClassesUnitPrice();
 | 
	
		
			
				|  |  | +            if (Objects.isNull(offlineClassesUnitPrice)) {
 | 
	
		
			
				|  |  | +                throw new BizException("课程单价异常");
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            BigDecimal offlineClassNum = new BigDecimal(vipGroup.getOfflineClassesNum());
 | 
	
		
			
				|  |  | +            BigDecimal onlineClassNum = new BigDecimal(vipGroup.getOnlineClassesNum());
 | 
	
		
			
				|  |  | +            BigDecimal onlineVipGroupCharge = onlineClassesUnitPrice.multiply(onlineClassNum);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        BigDecimal offlineVipGroupCharge = offlineClassesUnitPrice.multiply(offlineClassNum);
 | 
	
		
			
				|  |  | -        BigDecimal teacherOfflineSalary = BigDecimal.ZERO;
 | 
	
		
			
				|  |  | -        BigDecimal giveTeacherOfflineSalary = BigDecimal.ZERO;
 | 
	
		
			
				|  |  | +            BigDecimal offlineVipGroupCharge = offlineClassesUnitPrice.multiply(offlineClassNum);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        //课程购买费用计算
 | 
	
		
			
				|  |  | -        BigDecimal totalPrice = onlineVipGroupCharge.add(offlineVipGroupCharge);
 | 
	
		
			
				|  |  | -        totalPrice = totalPrice.multiply(discount).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
 | 
	
		
			
				|  |  | +            //课程购买费用计算
 | 
	
		
			
				|  |  | +            totalPrice = onlineVipGroupCharge.add(offlineVipGroupCharge);
 | 
	
		
			
				|  |  | +            totalPrice = totalPrice.multiply(discount).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        results.put("totalPrice", totalPrice.setScale(0, BigDecimal.ROUND_CEILING));
 | 
	
		
			
				|  |  | -        vipGroup.setTotalPrice(totalPrice.setScale(0, BigDecimal.ROUND_CEILING));
 | 
	
		
			
				|  |  | +            vipGroup.setTotalPrice(totalPrice.setScale(0, BigDecimal.ROUND_CEILING));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  | +        results.put("totalPrice", vipGroup.getTotalPrice());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          int normalStudentNum = classGroupStudentMapperDao.countGroupNormalStudentNum(VIP, vipGroup.getId().toString());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          //教师线下单课酬计算
 | 
	
		
			
				|  |  | +        BigDecimal teacherOfflineSalary = BigDecimal.ZERO;
 | 
	
		
			
				|  |  | +        BigDecimal giveTeacherOfflineSalary = BigDecimal.ZERO;
 | 
	
		
			
				|  |  |          if (vipGroupCategory.getMusicTheory()) {
 | 
	
		
			
				|  |  |              teacherOfflineSalary = teacherDefaultVipGroupSalary.getOfflineClassesSalary().multiply(new BigDecimal(normalStudentNum > 5 ? 5 : normalStudentNum)).setScale(CommonConstants.DECIMAL_FINAL_PLACE, BigDecimal.ROUND_HALF_UP);
 | 
	
		
			
				|  |  |          } else {
 | 
	
	
		
			
				|  | @@ -2094,6 +2097,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |          VipGroupSalarySettlementTypeDto vipOfflineSalarySettlement = null;
 | 
	
		
			
				|  |  |          VipGroupSalarySettlementTypeDto giveVipOfflineSalarySettlement = null;
 | 
	
		
			
				|  |  |          BigDecimal discount = new BigDecimal(100);
 | 
	
		
			
				|  |  | +        BigDecimal totalPrice = null;
 | 
	
		
			
				|  |  |          if (vipGroup.getVipGroupActivityId() != null) {
 | 
	
		
			
				|  |  |              VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(vipGroup.getVipGroupActivityId());
 | 
	
		
			
				|  |  |              discount = vipGroupActivity.getDiscount();
 | 
	
	
		
			
				|  | @@ -2103,32 +2107,36 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              vipOfflineSalarySettlement = vipGroupSalarySettlementDto.getOfflineSalarySettlement();
 | 
	
		
			
				|  |  |              giveVipOfflineSalarySettlement = vipGroupSalarySettlementDto.getGiveVipOfflineSalarySettlement();
 | 
	
		
			
				|  |  | +            if(vipGroupActivity.getFixedCourseNumFlag()){
 | 
	
		
			
				|  |  | +                totalPrice = vipGroupActivity.getMarketPrice();
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  |          }
 | 
	
		
			
				|  |  | +        if(totalPrice == null){
 | 
	
		
			
				|  |  | +            BigDecimal onlineClassesUnitPrice = vipGroup.getOnlineClassesUnitPrice();
 | 
	
		
			
				|  |  | +            if (Objects.isNull(onlineClassesUnitPrice)) {
 | 
	
		
			
				|  |  | +                throw new BizException("课程单价异常");
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            BigDecimal offlineClassesUnitPrice = vipGroup.getOfflineClassesUnitPrice();
 | 
	
		
			
				|  |  | +            if (Objects.isNull(offlineClassesUnitPrice)) {
 | 
	
		
			
				|  |  | +                throw new BizException("课程单价异常");
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +            BigDecimal offlineClassNum = new BigDecimal(vipGroup.getOfflineClassesNum());
 | 
	
		
			
				|  |  | +            BigDecimal onlineClassNum = new BigDecimal(vipGroup.getOnlineClassesNum());
 | 
	
		
			
				|  |  | +            BigDecimal onlineVipGroupCharge = onlineClassesUnitPrice.multiply(onlineClassNum);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        BigDecimal onlineClassesUnitPrice = vipGroup.getOnlineClassesUnitPrice();
 | 
	
		
			
				|  |  | -        if (Objects.isNull(onlineClassesUnitPrice)) {
 | 
	
		
			
				|  |  | -            throw new BizException("课程单价异常");
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        BigDecimal offlineClassesUnitPrice = vipGroup.getOfflineClassesUnitPrice();
 | 
	
		
			
				|  |  | -        if (Objects.isNull(offlineClassesUnitPrice)) {
 | 
	
		
			
				|  |  | -            throw new BizException("课程单价异常");
 | 
	
		
			
				|  |  | -        }
 | 
	
		
			
				|  |  | -        BigDecimal offlineClassNum = new BigDecimal(vipGroup.getOfflineClassesNum());
 | 
	
		
			
				|  |  | -        BigDecimal onlineClassNum = new BigDecimal(vipGroup.getOnlineClassesNum());
 | 
	
		
			
				|  |  | -        BigDecimal onlineVipGroupCharge = onlineClassesUnitPrice.multiply(onlineClassNum);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -        BigDecimal offlineVipGroupCharge = offlineClassesUnitPrice.multiply(offlineClassNum);
 | 
	
		
			
				|  |  | -        BigDecimal teacherOfflineSalary = BigDecimal.ZERO;
 | 
	
		
			
				|  |  | -        BigDecimal giveTeacherOfflineSalary = BigDecimal.ZERO;
 | 
	
		
			
				|  |  | +            BigDecimal offlineVipGroupCharge = offlineClassesUnitPrice.multiply(offlineClassNum);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        //课程购买费用计算
 | 
	
		
			
				|  |  | -        BigDecimal totalPrice = onlineVipGroupCharge.add(offlineVipGroupCharge);
 | 
	
		
			
				|  |  | -        totalPrice = totalPrice.multiply(discount).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
 | 
	
		
			
				|  |  | +            //课程购买费用计算
 | 
	
		
			
				|  |  | +            totalPrice = onlineVipGroupCharge.add(offlineVipGroupCharge);
 | 
	
		
			
				|  |  | +            totalPrice = totalPrice.multiply(discount).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN);
 | 
	
		
			
				|  |  | +            vipGroup.setTotalPrice(totalPrice.setScale(0, BigDecimal.ROUND_CEILING));
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        results.put("totalPrice", totalPrice.setScale(0, BigDecimal.ROUND_CEILING));
 | 
	
		
			
				|  |  | -        vipGroup.setTotalPrice(totalPrice.setScale(0, BigDecimal.ROUND_CEILING));
 | 
	
		
			
				|  |  | +        results.put("totalPrice", vipGroup.getTotalPrice());
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          //教师线下单课酬计算
 | 
	
		
			
				|  |  | +        BigDecimal teacherOfflineSalary = BigDecimal.ZERO;
 | 
	
		
			
				|  |  | +        BigDecimal giveTeacherOfflineSalary = BigDecimal.ZERO;
 | 
	
		
			
				|  |  |          teacherOfflineSalary = teacherDefaultVipGroupSalary.getOfflineClassesSalary();
 | 
	
		
			
				|  |  |          if (Objects.nonNull(vipOfflineSalarySettlement)) {
 | 
	
		
			
				|  |  |              if (vipOfflineSalarySettlement.getSalarySettlementType() == SalarySettlementTypeEnum.FIXED_SALARY) {
 |