|
@@ -876,39 +876,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
BigDecimal totalClassNum=offlineClassNum.add(onlineClassNum);
|
|
|
BigDecimal teacherOnlineSalary=null,teacherOfflineSalary=null;
|
|
|
|
|
|
- //教师课酬线上单课酬计算
|
|
|
- if(Objects.nonNull(vipGroupSalarySettlementDto.getOnlineSalarySettlement())){
|
|
|
- if(vipGroup instanceof VipGroupApplyBaseInfoDto&&!useDefaultTeacherSalary
|
|
|
- &&vipGroupActivity.getSalaryReadonlyFlag().equals("1")){
|
|
|
- teacherOnlineSalary=((VipGroupApplyBaseInfoDto) vipGroup).getOnlineTeacherSalary();
|
|
|
- results.put("onlineTeacherSalary",teacherOnlineSalary);
|
|
|
- }
|
|
|
- if(Objects.isNull(teacherOnlineSalary)){
|
|
|
- switch (vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSalarySettlementType()){
|
|
|
- case TEACHER_DEFAULT:
|
|
|
- if(Objects.isNull(teacherDefaultVipGroupSalary)||Objects.isNull(teacherDefaultVipGroupSalary.getOnlineClassesSalary())){
|
|
|
- teacherOnlineSalary=new BigDecimal(0);
|
|
|
- }else{
|
|
|
- teacherOnlineSalary=teacherDefaultVipGroupSalary.getOnlineClassesSalary();
|
|
|
- }
|
|
|
-// teacherOnlineSalary=teacherOnlineSalary.multiply(classTimeDuty);
|
|
|
- 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));
|
|
|
- break;
|
|
|
- case FIXED_SALARY:
|
|
|
- results.put("onlineTeacherSalary",vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue().setScale(0, BigDecimal.ROUND_HALF_UP));
|
|
|
- break;
|
|
|
- default:
|
|
|
- throw new BizException("未指定课酬结算标准!");
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- }else{
|
|
|
- results.put("onlineTeacherSalary", new BigDecimal(0));
|
|
|
- }
|
|
|
-
|
|
|
//教师线下单课酬计算
|
|
|
if(Objects.nonNull(vipGroupSalarySettlementDto.getOfflineSalarySettlement())){
|
|
|
if(vipGroup instanceof VipGroupApplyBaseInfoDto&&!useDefaultTeacherSalary
|
|
@@ -945,41 +912,75 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
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("请指定赠送课程类型!");
|
|
|
+ //课程购买费用计算
|
|
|
+ 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()));
|
|
|
}
|
|
|
- totalPrice=onlineVipGroupCharge.add(offlineVipGroupCharge);
|
|
|
- break;
|
|
|
- default:
|
|
|
- throw new BizException("活动类型错误!");
|
|
|
+ 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));
|
|
|
+
|
|
|
+ //教师课酬线上单课酬计算
|
|
|
+ if(Objects.nonNull(vipGroupSalarySettlementDto.getOnlineSalarySettlement())){
|
|
|
+ if(vipGroup instanceof VipGroupApplyBaseInfoDto&&!useDefaultTeacherSalary
|
|
|
+ &&vipGroupActivity.getSalaryReadonlyFlag().equals("1")){
|
|
|
+ teacherOnlineSalary=((VipGroupApplyBaseInfoDto) vipGroup).getOnlineTeacherSalary();
|
|
|
+ results.put("onlineTeacherSalary",teacherOnlineSalary);
|
|
|
}
|
|
|
- results.put("totalPrice",totalPrice.setScale(0,BigDecimal.ROUND_CEILING));
|
|
|
+ if(Objects.isNull(teacherOnlineSalary)){
|
|
|
+ switch (vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSalarySettlementType()){
|
|
|
+ case TEACHER_DEFAULT:
|
|
|
+ if(Objects.isNull(teacherDefaultVipGroupSalary)||Objects.isNull(teacherDefaultVipGroupSalary.getOnlineClassesSalary())){
|
|
|
+ teacherOnlineSalary=new BigDecimal(0);
|
|
|
+ }else{
|
|
|
+ teacherOnlineSalary=teacherDefaultVipGroupSalary.getOnlineClassesSalary();
|
|
|
+ }
|
|
|
+ results.put("onlineTeacherSalary",teacherOnlineSalary.setScale(0, BigDecimal.ROUND_HALF_UP));
|
|
|
+ break;
|
|
|
+ case RATIO_DISCOUNT:
|
|
|
+ BigDecimal tos=results.get("totalPrice").divide(onlineClassNum.add(offlineClassNum), CommonConstants.DECIMAL_PLACE, BigDecimal.ROUND_DOWN)
|
|
|
+ .multiply(new BigDecimal(0.6));
|
|
|
+// 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", tos);
|
|
|
+ break;
|
|
|
+ case FIXED_SALARY:
|
|
|
+ results.put("onlineTeacherSalary",vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue().setScale(0, BigDecimal.ROUND_HALF_UP));
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ throw new BizException("未指定课酬结算标准!");
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ results.put("onlineTeacherSalary", new BigDecimal(0));
|
|
|
}
|
|
|
+
|
|
|
return results;
|
|
|
}
|
|
|
|