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