|
@@ -238,8 +238,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
// }
|
|
|
|
|
|
//如果默认课酬与实际课酬不匹配则需要审批
|
|
|
- if(costInfo.get("offlineTeacherSalary").compareTo(vipGroupApplyBaseInfoDto.getOfflineTeacherSalary())!=0||
|
|
|
- costInfo.get("onlineTeacherSalary").compareTo(vipGroupApplyBaseInfoDto.getOnlineTeacherSalary())!=0
|
|
|
+ if(costInfo.get("offlineTeacherSalary").compareTo(vipGroupApplyBaseInfoDto.getOfflineTeacherSalary())>0||
|
|
|
+ costInfo.get("onlineTeacherSalary").compareTo(vipGroupApplyBaseInfoDto.getOnlineTeacherSalary())>0
|
|
|
&&StringUtils.isBlank(studentIds)){
|
|
|
vipGroupApplyBaseInfoDto.setAuditStatus(AuditStatusEnum.ING);
|
|
|
}else{
|
|
@@ -776,17 +776,18 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
teacherOnlineSalary=teacherDefaultVipGroupSalary.getOnlineClassesSalary();
|
|
|
}
|
|
|
// teacherOnlineSalary=teacherOnlineSalary.multiply(classTimeDuty);
|
|
|
- results.put("onlineTeacherSalary",teacherOnlineSalary);
|
|
|
+ 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(CommonConstants.DECIMAL_FINAL_PLACE,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));
|
|
|
break;
|
|
|
case FIXED_SALARY:
|
|
|
- results.put("onlineTeacherSalary",vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue());
|
|
|
+ results.put("onlineTeacherSalary",vipGroupSalarySettlementDto.getOnlineSalarySettlement().getSettlementValue().setScale(0, BigDecimal.ROUND_HALF_UP));
|
|
|
break;
|
|
|
default:
|
|
|
throw new BizException("未指定课酬结算标准!");
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -806,13 +807,13 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
teacherOfflineSalary=teacherDefaultVipGroupSalary.getOfflineClassesSalary();
|
|
|
}
|
|
|
// teacherOfflineSalary=teacherOfflineSalary.multiply(classTimeDuty);
|
|
|
- results.put("offlineTeacherSalary",teacherOfflineSalary);
|
|
|
+ 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(CommonConstants.DECIMAL_FINAL_PLACE,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));
|
|
|
break;
|
|
|
case FIXED_SALARY:
|
|
|
- results.put("offlineTeacherSalary",vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSettlementValue());
|
|
|
+ results.put("offlineTeacherSalary",vipGroupSalarySettlementDto.getOfflineSalarySettlement().getSettlementValue().setScale(0, BigDecimal.ROUND_HALF_UP));
|
|
|
break;
|
|
|
default:
|
|
|
throw new BizException("未指定课酬结算标准!");
|
|
@@ -1254,6 +1255,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
courseScheduleStudentPaymentDao.batchDeleteWithID(studentPaymentIds);
|
|
|
}
|
|
|
|
|
|
+ courseScheduleTeacherSalaryService.updateVipGroupCourseTeacherSalary(vipGroupId.intValue(),-1);
|
|
|
+
|
|
|
// classGroup.setStudentNum(classGroupStudentMapperDao.countClassGroupStudentNum(classGroup.getId()));
|
|
|
// classGroupDao.update(classGroup);
|
|
|
|
|
@@ -1360,6 +1363,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
|
|
|
courseScheduleService.batchDeleteMusicGroupCourseWithStudent(studentPaymentOrder.getMusicGroupId(),studentApplyRefunds.getUserId(),GroupType.VIP);
|
|
|
|
|
|
+
|
|
|
+ courseScheduleTeacherSalaryService.updateVipGroupCourseTeacherSalary(Integer.parseInt(studentPaymentOrder.getMusicGroupId()),-1);
|
|
|
+
|
|
|
//学员退出班级群
|
|
|
ImGroupMember[] imGroupMembers = new ImGroupMember[]{new ImGroupMember(studentApplyRefunds.getUserId().toString())};
|
|
|
imFeignService.groupJoin(new ImGroupModel(studentPaymentOrder.getClassGroupId().toString(), imGroupMembers, null));
|
|
@@ -1640,14 +1646,14 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
|
|
|
Date now=new Date();
|
|
|
|
|
|
- BigDecimal onlineCoursePrice = courseScheduleStudentPaymentDao.findVipGroupCoursePrice(vipGroup.getId().intValue(),TeachModeEnum.ONLINE.getCode());
|
|
|
- if(Objects.isNull(onlineCoursePrice)||onlineCoursePrice.compareTo(new BigDecimal(0))==0){
|
|
|
- onlineCoursePrice = vipGroup.getOnlineClassesUnitPrice();
|
|
|
- }
|
|
|
- BigDecimal offlineCoursePrice = courseScheduleStudentPaymentDao.findVipGroupCoursePrice(vipGroup.getId().intValue(),TeachModeEnum.OFFLINE.getCode());
|
|
|
- if(Objects.isNull(offlineCoursePrice)||offlineCoursePrice.compareTo(new BigDecimal(0))==0){
|
|
|
- offlineCoursePrice = vipGroup.getOfflineClassesUnitPrice();
|
|
|
- }
|
|
|
+// BigDecimal onlineCoursePrice = courseScheduleStudentPaymentDao.findVipGroupCoursePrice(vipGroup.getId().intValue(),TeachModeEnum.ONLINE.getCode());
|
|
|
+// if(Objects.isNull(onlineCoursePrice)||onlineCoursePrice.compareTo(new BigDecimal(0))==0){
|
|
|
+// onlineCoursePrice = vipGroup.getOnlineClassesUnitPrice();
|
|
|
+// }
|
|
|
+// BigDecimal offlineCoursePrice = courseScheduleStudentPaymentDao.findVipGroupCoursePrice(vipGroup.getId().intValue(),TeachModeEnum.OFFLINE.getCode());
|
|
|
+// if(Objects.isNull(offlineCoursePrice)||offlineCoursePrice.compareTo(new BigDecimal(0))==0){
|
|
|
+// offlineCoursePrice = vipGroup.getOfflineClassesUnitPrice();
|
|
|
+// }
|
|
|
|
|
|
BigDecimal surplusCourseTotalPrice = new BigDecimal(0);
|
|
|
BigDecimal singleClassPrice=vipGroupApplyDto.getSingleClassPrice();
|
|
@@ -1672,16 +1678,24 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
|
|
|
courseScheduleService.batchAddCourseSchedule(vipGroupApplyDto.getCourseSchedules());
|
|
|
|
|
|
- TeacherDefaultVipGroupSalary byTeacherAndCategory = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(vipGroup.getUserId(), vipGroup.getVipGroupCategoryId());
|
|
|
+ ClassGroupTeacherSalary classGroupTeacherSalary = classGroupTeacherSalaryDao.findByVipGoupAndTeacher(vipGroup.getId().intValue(), vipGroup.getUserId());
|
|
|
|
|
|
- BigDecimal onlineTeacherSalary,offlineTeacherSalary;
|
|
|
- if(Objects.nonNull(byTeacherAndCategory)){
|
|
|
- onlineTeacherSalary=byTeacherAndCategory.getOnlineClassesSalary();
|
|
|
- offlineTeacherSalary=byTeacherAndCategory.getOfflineClassesSalary();
|
|
|
+ BigDecimal onlineTeacherSalary,offlineTeacherSalary,zero=new BigDecimal(0);
|
|
|
+ if(Objects.nonNull(classGroupTeacherSalary)){
|
|
|
+ onlineTeacherSalary=classGroupTeacherSalary.getOnlineClassesSalary();
|
|
|
+ offlineTeacherSalary=classGroupTeacherSalary.getSalary();
|
|
|
}else{
|
|
|
- ClassGroupTeacherSalary classGroupTeacherSalary = classGroupTeacherSalaryDao.findByVipGoupAndTeacher(vipGroup.getId().intValue(), vipGroup.getUserId());
|
|
|
- onlineTeacherSalary=classGroupTeacherSalary.getOnlineClassesSalary();
|
|
|
- offlineTeacherSalary=classGroupTeacherSalary.getSalary();
|
|
|
+ onlineTeacherSalary = new BigDecimal(0);
|
|
|
+ offlineTeacherSalary = new BigDecimal(0);
|
|
|
+ }
|
|
|
+
|
|
|
+ if(onlineTeacherSalary.compareTo(zero)<=0
|
|
|
+ &&offlineTeacherSalary.compareTo(zero)<=0){
|
|
|
+ TeacherDefaultVipGroupSalary byTeacherAndCategory = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(vipGroup.getUserId(), vipGroup.getVipGroupCategoryId());
|
|
|
+ if(Objects.nonNull(byTeacherAndCategory)){
|
|
|
+ onlineTeacherSalary=byTeacherAndCategory.getOnlineClassesSalary();
|
|
|
+ offlineTeacherSalary=byTeacherAndCategory.getOfflineClassesSalary();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
//创建老师单节课课酬信息
|
|
@@ -1698,7 +1712,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
for (ClassGroupStudentMapper classGroupStudent : classGroupStudents) {
|
|
|
SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(classGroupStudent.getUserId());
|
|
|
if(sysUserCashAccount.getCourseBalance().compareTo(surplusCourseTotalPrice)<0){
|
|
|
- throw new BizException("[{}]学生课程余额不足",classGroupStudent.getUserName());
|
|
|
+ throw new BizException("学生[{}]的课程余额不足",classGroupStudent.getUserName());
|
|
|
}
|
|
|
List<CourseScheduleStudentPayment> courseScheduleStudentPayments=new ArrayList<>();
|
|
|
for (CourseSchedule vipGroupCourseSchedule : vipGroupApplyDto.getCourseSchedules()) {
|
|
@@ -1853,6 +1867,8 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
classGroupDao.update(classGroup);
|
|
|
classGroupService.updateClassGroupInfo(classGroup.getId());
|
|
|
|
|
|
+ courseScheduleTeacherSalaryService.updateVipGroupCourseTeacherSalary(vipGroupId.intValue(),studentIds.size());
|
|
|
+
|
|
|
try {
|
|
|
ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
|
|
|
// 创建群组
|