Selaa lähdekoodia

1、陪练课调整
2、付费陪练课可预约时间调整

Joburgess 5 vuotta sitten
vanhempi
commit
e94ec3daeb

+ 1 - 1
mec-biz/src/main/java/com/ym/mec/biz/service/VipGroupService.java

@@ -358,7 +358,7 @@ public interface VipGroupService extends BaseService<Long, VipGroup> {
      * @return void
      */
     void addVipGroupStudents(Long vipGroupId,List<Integer> studentIds);
-    
+
 	/**
 	 * 更新vipgroup至完成状态
 	 */

+ 66 - 65
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -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;
     }