zouxuan преди 2 години
родител
ревизия
73ee87d546
променени са 1 файла, в които са добавени 50 реда и са изтрити 42 реда
  1. 50 42
      mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

+ 50 - 42
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -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) {