|  | @@ -876,6 +876,45 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |  		BigDecimal totalClassNum=offlineClassNum.add(onlineClassNum);
 | 
	
		
			
				|  |  |  		BigDecimal teacherOnlineSalary=null,teacherOfflineSalary=null;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +		if(Objects.isNull(vipGroupActivity.getType())){
 | 
	
		
			
				|  |  | +			throw new BizException("此活动未设置活动类型");
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		//课程购买费用计算
 | 
	
		
			
				|  |  | +		BigDecimal totalPrice;
 | 
	
		
			
				|  |  | +		switch (vipGroupActivity.getType()){
 | 
	
		
			
				|  |  | +			case BASE_ACTIVITY:
 | 
	
		
			
				|  |  | +				totalPrice=onlineVipGroupCharge.add(offlineVipGroupCharge);
 | 
	
		
			
				|  |  | +				break;
 | 
	
		
			
				|  |  | +			case DISCOUNT:
 | 
	
		
			
				|  |  | +				BigDecimal discount=new BigDecimal(vipGroupActivity.getAttribute1());
 | 
	
		
			
				|  |  | +				totalPrice=onlineVipGroupCharge.add(offlineVipGroupCharge);
 | 
	
		
			
				|  |  | +				totalPrice=totalPrice.multiply(discount).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).setScale(CommonConstants.DECIMAL_FINAL_PLACE,BigDecimal.ROUND_HALF_UP);
 | 
	
		
			
				|  |  | +				break;
 | 
	
		
			
				|  |  | +			case GIVE_CLASS:
 | 
	
		
			
				|  |  | +				if(totalClassNum.compareTo(new BigDecimal(vipGroupActivity.getAttribute1()))<0){
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				}else if(vipGroup.getGiveTeachMode()==TeachModeEnum.OFFLINE){
 | 
	
		
			
				|  |  | +					if(totalClassNum.compareTo(new BigDecimal(vipGroupActivity.getAttribute1()))>-1){
 | 
	
		
			
				|  |  | +						offlineClassNum=offlineClassNum.subtract(new BigDecimal(vipGroupActivity.getAttribute2()));
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +					offlineVipGroupCharge = offlineClassesUnitPrice.multiply(offlineClassNum);
 | 
	
		
			
				|  |  | +				}else if(vipGroup.getGiveTeachMode()==TeachModeEnum.ONLINE){
 | 
	
		
			
				|  |  | +					if(totalClassNum.compareTo(new BigDecimal(vipGroupActivity.getAttribute1()))>-1){
 | 
	
		
			
				|  |  | +						onlineClassNum=onlineClassNum.subtract(new BigDecimal(vipGroupActivity.getAttribute2()));
 | 
	
		
			
				|  |  | +					}
 | 
	
		
			
				|  |  | +					onlineVipGroupCharge = onlineClassesUnitPrice.multiply(onlineClassNum);
 | 
	
		
			
				|  |  | +				}else{
 | 
	
		
			
				|  |  | +					throw new BizException("请指定赠送课程类型!");
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				totalPrice=onlineVipGroupCharge.add(offlineVipGroupCharge);
 | 
	
		
			
				|  |  | +				break;
 | 
	
		
			
				|  |  | +			default:
 | 
	
		
			
				|  |  | +				throw new BizException("活动类型错误!");
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		totalPrice=totalPrice.setScale(0,BigDecimal.ROUND_CEILING);
 | 
	
		
			
				|  |  | +		results.put("totalPrice",totalPrice);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  		//教师课酬线上单课酬计算
 | 
	
		
			
				|  |  |  		if(Objects.nonNull(vipGroupSalarySettlementDto.getOnlineSalarySettlement())){
 | 
	
		
			
				|  |  |  			if(vipGroup instanceof VipGroupApplyBaseInfoDto&&!useDefaultTeacherSalary
 | 
	
	
		
			
				|  | @@ -895,7 +934,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |  						results.put("onlineTeacherSalary",teacherOnlineSalary.setScale(0, BigDecimal.ROUND_HALF_UP));
 | 
	
		
			
				|  |  |  						break;
 | 
	
		
			
				|  |  |  					case RATIO_DISCOUNT:
 | 
	
		
			
				|  |  | -						results.put("onlineTeacherSalary",onlineClassesUnitPrice.multiply((vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue())).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).setScale(0,BigDecimal.ROUND_HALF_UP));
 | 
	
		
			
				|  |  | +//						results.put("onlineTeacherSalary",onlineClassesUnitPrice.multiply((vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue())).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).setScale(0,BigDecimal.ROUND_HALF_UP));
 | 
	
		
			
				|  |  | +						results.put("onlineTeacherSalary",totalPrice.divide(totalClassNum, RoundingMode.HALF_UP).multiply(vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue()).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).setScale(0,BigDecimal.ROUND_HALF_UP));
 | 
	
		
			
				|  |  |  						break;
 | 
	
		
			
				|  |  |  					case FIXED_SALARY:
 | 
	
		
			
				|  |  |  						results.put("onlineTeacherSalary",vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue().setScale(0, BigDecimal.ROUND_HALF_UP));
 | 
	
	
		
			
				|  | @@ -924,11 +964,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |  						}else{
 | 
	
		
			
				|  |  |  							teacherOfflineSalary=teacherDefaultVipGroupSalary.getOfflineClassesSalary();
 | 
	
		
			
				|  |  |  						}
 | 
	
		
			
				|  |  | -//                        teacherOfflineSalary=teacherOfflineSalary.multiply(classTimeDuty);
 | 
	
		
			
				|  |  |  						results.put("offlineTeacherSalary",teacherOfflineSalary.setScale(0, BigDecimal.ROUND_HALF_UP));
 | 
	
		
			
				|  |  |  						break;
 | 
	
		
			
				|  |  |  					case RATIO_DISCOUNT:
 | 
	
		
			
				|  |  | -						results.put("offlineTeacherSalary",offlineClassesUnitPrice.multiply(vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSettlementValue()).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).setScale(0,BigDecimal.ROUND_HALF_UP));
 | 
	
		
			
				|  |  | +//						results.put("offlineTeacherSalary",offlineClassesUnitPrice.multiply(vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSettlementValue()).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).setScale(0,BigDecimal.ROUND_HALF_UP));
 | 
	
		
			
				|  |  | +						results.put("offlineTeacherSalary",totalPrice.divide(totalClassNum, RoundingMode.HALF_UP).multiply(vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSettlementValue()).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).setScale(0,BigDecimal.ROUND_HALF_UP));
 | 
	
		
			
				|  |  |  						break;
 | 
	
		
			
				|  |  |  					case FIXED_SALARY:
 | 
	
		
			
				|  |  |  						results.put("offlineTeacherSalary",vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSettlementValue().setScale(0, BigDecimal.ROUND_HALF_UP));
 | 
	
	
		
			
				|  | @@ -941,45 +981,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
 | 
	
		
			
				|  |  |  			results.put("offlineTeacherSalary", new BigDecimal(0));
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		if(Objects.isNull(vipGroupActivity.getType())){
 | 
	
		
			
				|  |  | -			throw new BizException("此活动未设置活动类型");
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -		if(computeTotalPrice){
 | 
	
		
			
				|  |  | -			//课程购买费用计算
 | 
	
		
			
				|  |  | -			BigDecimal totalPrice;
 | 
	
		
			
				|  |  | -			switch (vipGroupActivity.getType()){
 | 
	
		
			
				|  |  | -				case BASE_ACTIVITY:
 | 
	
		
			
				|  |  | -					totalPrice=onlineVipGroupCharge.add(offlineVipGroupCharge);
 | 
	
		
			
				|  |  | -					break;
 | 
	
		
			
				|  |  | -				case DISCOUNT:
 | 
	
		
			
				|  |  | -					BigDecimal discount=new BigDecimal(vipGroupActivity.getAttribute1());
 | 
	
		
			
				|  |  | -					totalPrice=onlineVipGroupCharge.add(offlineVipGroupCharge);
 | 
	
		
			
				|  |  | -					totalPrice=totalPrice.multiply(discount).divide(new BigDecimal(100), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN).setScale(CommonConstants.DECIMAL_FINAL_PLACE,BigDecimal.ROUND_HALF_UP);
 | 
	
		
			
				|  |  | -					break;
 | 
	
		
			
				|  |  | -				case GIVE_CLASS:
 | 
	
		
			
				|  |  | -					if(totalClassNum.compareTo(new BigDecimal(vipGroupActivity.getAttribute1()))<0){
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -					}else if(vipGroup.getGiveTeachMode()==TeachModeEnum.OFFLINE){
 | 
	
		
			
				|  |  | -						if(totalClassNum.compareTo(new BigDecimal(vipGroupActivity.getAttribute1()))>-1){
 | 
	
		
			
				|  |  | -							offlineClassNum=offlineClassNum.subtract(new BigDecimal(vipGroupActivity.getAttribute2()));
 | 
	
		
			
				|  |  | -						}
 | 
	
		
			
				|  |  | -						offlineVipGroupCharge = offlineClassesUnitPrice.multiply(offlineClassNum);
 | 
	
		
			
				|  |  | -					}else if(vipGroup.getGiveTeachMode()==TeachModeEnum.ONLINE){
 | 
	
		
			
				|  |  | -						if(totalClassNum.compareTo(new BigDecimal(vipGroupActivity.getAttribute1()))>-1){
 | 
	
		
			
				|  |  | -							onlineClassNum=onlineClassNum.subtract(new BigDecimal(vipGroupActivity.getAttribute2()));
 | 
	
		
			
				|  |  | -						}
 | 
	
		
			
				|  |  | -						onlineVipGroupCharge = onlineClassesUnitPrice.multiply(onlineClassNum);
 | 
	
		
			
				|  |  | -					}else{
 | 
	
		
			
				|  |  | -						throw new BizException("请指定赠送课程类型!");
 | 
	
		
			
				|  |  | -					}
 | 
	
		
			
				|  |  | -					totalPrice=onlineVipGroupCharge.add(offlineVipGroupCharge);
 | 
	
		
			
				|  |  | -					break;
 | 
	
		
			
				|  |  | -				default:
 | 
	
		
			
				|  |  | -					throw new BizException("活动类型错误!");
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | -			results.put("totalPrice",totalPrice.setScale(0,BigDecimal.ROUND_CEILING));
 | 
	
		
			
				|  |  | -		}
 | 
	
		
			
				|  |  |          return results;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 |