|
@@ -1549,22 +1549,45 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
throw new BizException("指定的vip课不存在");
|
|
throw new BizException("指定的vip课不存在");
|
|
}
|
|
}
|
|
ClassGroup classGroup = classGroupDao.findByVipGroup(vipGroup.getId(), null);
|
|
ClassGroup classGroup = classGroupDao.findByVipGroup(vipGroup.getId(), null);
|
|
|
|
+ if(Objects.isNull(classGroup)){
|
|
|
|
+ throw new BizException("班级不存在");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ Date now=new Date();
|
|
|
|
+
|
|
|
|
+ BigDecimal onlineCoursePrice = courseScheduleStudentPaymentDao.findVipGroupCoursePrice(vipGroup.getId().intValue(),TeachModeEnum.ONLINE.getCode());
|
|
|
|
+ if(Objects.isNull(onlineCoursePrice)){
|
|
|
|
+ onlineCoursePrice = new BigDecimal(0);
|
|
|
|
+ }
|
|
|
|
+ BigDecimal offlineCoursePrice = courseScheduleStudentPaymentDao.findVipGroupCoursePrice(vipGroup.getId().intValue(),TeachModeEnum.OFFLINE.getCode());
|
|
|
|
+ if(Objects.isNull(offlineCoursePrice)){
|
|
|
|
+ offlineCoursePrice = new BigDecimal(0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ BigDecimal surplusCourseTotalPrice = new BigDecimal(0);
|
|
|
|
+
|
|
//课程信息调整
|
|
//课程信息调整
|
|
- vipGroupApplyDto.getCourseSchedules().forEach(courseSchedule -> {
|
|
|
|
|
|
+ for (CourseSchedule courseSchedule : vipGroupApplyDto.getCourseSchedules()) {
|
|
courseSchedule.setSchoolId(vipGroup.getTeacherSchoolId());
|
|
courseSchedule.setSchoolId(vipGroup.getTeacherSchoolId());
|
|
courseSchedule.setTeacherId(vipGroup.getUserId());
|
|
courseSchedule.setTeacherId(vipGroup.getUserId());
|
|
courseSchedule.setActualTeacherId(vipGroup.getUserId());
|
|
courseSchedule.setActualTeacherId(vipGroup.getUserId());
|
|
courseSchedule.setStatus(CourseStatusEnum.NOT_START);
|
|
courseSchedule.setStatus(CourseStatusEnum.NOT_START);
|
|
courseSchedule.setType(CourseSchedule.CourseScheduleType.VIP);
|
|
courseSchedule.setType(CourseSchedule.CourseScheduleType.VIP);
|
|
courseSchedule.setClassGroupId(classGroup.getId());
|
|
courseSchedule.setClassGroupId(classGroup.getId());
|
|
- courseSchedule.setGroupType(GroupType.MUSIC);
|
|
|
|
|
|
+ courseSchedule.setGroupType(GroupType.VIP);
|
|
courseSchedule.setMusicGroupId(vipGroup.getId().toString());
|
|
courseSchedule.setMusicGroupId(vipGroup.getId().toString());
|
|
- });
|
|
|
|
|
|
+ if (courseSchedule.getTeachMode().equals(TeachModeEnum.ONLINE)) {
|
|
|
|
+ surplusCourseTotalPrice = surplusCourseTotalPrice.add(onlineCoursePrice);
|
|
|
|
+ } else if (courseSchedule.getTeachMode().equals(TeachModeEnum.OFFLINE)) {
|
|
|
|
+ surplusCourseTotalPrice = surplusCourseTotalPrice.add(offlineCoursePrice);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
courseScheduleService.batchAddCourseSchedule(vipGroupApplyDto.getCourseSchedules());
|
|
courseScheduleService.batchAddCourseSchedule(vipGroupApplyDto.getCourseSchedules());
|
|
|
|
|
|
TeacherDefaultVipGroupSalary byTeacherAndCategory = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(vipGroup.getUserId(), vipGroup.getVipGroupCategoryId());
|
|
TeacherDefaultVipGroupSalary byTeacherAndCategory = teacherDefaultVipGroupSalaryDao.findByTeacherAndCategory(vipGroup.getUserId(), vipGroup.getVipGroupCategoryId());
|
|
|
|
|
|
- BigDecimal onlineTeacherSalary=new BigDecimal(0),offlineTeacherSalary=new BigDecimal(0);
|
|
|
|
|
|
+ BigDecimal onlineTeacherSalary,offlineTeacherSalary;
|
|
if(Objects.nonNull(byTeacherAndCategory)){
|
|
if(Objects.nonNull(byTeacherAndCategory)){
|
|
onlineTeacherSalary=byTeacherAndCategory.getOnlineClassesSalary();
|
|
onlineTeacherSalary=byTeacherAndCategory.getOnlineClassesSalary();
|
|
offlineTeacherSalary=byTeacherAndCategory.getOfflineClassesSalary();
|
|
offlineTeacherSalary=byTeacherAndCategory.getOfflineClassesSalary();
|
|
@@ -1586,7 +1609,28 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
List<ImGroupMember> imGroupMemberList = new ArrayList<>();
|
|
List<ImGroupMember> imGroupMemberList = new ArrayList<>();
|
|
//生成学生单课缴费信息
|
|
//生成学生单课缴费信息
|
|
for (ClassGroupStudentMapper classGroupStudent : classGroupStudents) {
|
|
for (ClassGroupStudentMapper classGroupStudent : classGroupStudents) {
|
|
- courseScheduleStudentPaymentService.createCourseScheduleStudentPaymentForVipGroup(vipGroup.getId(),classGroupStudent.getUserId());
|
|
|
|
|
|
+ SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(classGroupStudent.getUserId());
|
|
|
|
+ if(sysUserCashAccount.getCourseBalance().compareTo(surplusCourseTotalPrice)<0){
|
|
|
|
+ throw new BizException("[{}]学生课程余额不足",classGroupStudent.getUserName());
|
|
|
|
+ }
|
|
|
|
+ List<CourseScheduleStudentPayment> courseScheduleStudentPayments=new ArrayList<>();
|
|
|
|
+ for (CourseSchedule vipGroupCourseSchedule : vipGroupApplyDto.getCourseSchedules()) {
|
|
|
|
+ CourseScheduleStudentPayment courseScheduleStudentPayment = new CourseScheduleStudentPayment();
|
|
|
|
+ courseScheduleStudentPayment.setGroupType(GroupType.VIP);
|
|
|
|
+ courseScheduleStudentPayment.setMusicGroupId(vipGroup.getId().toString());
|
|
|
|
+ courseScheduleStudentPayment.setClassGroupId(vipGroupCourseSchedule.getClassGroupId());
|
|
|
|
+ courseScheduleStudentPayment.setCourseScheduleId(vipGroupCourseSchedule.getId());
|
|
|
|
+ courseScheduleStudentPayment.setUserId(classGroupStudent.getUserId());
|
|
|
|
+ if(vipGroupCourseSchedule.getTeachMode().equals(TeachModeEnum.ONLINE)){
|
|
|
|
+ courseScheduleStudentPayment.setExpectPrice(onlineCoursePrice);
|
|
|
|
+ }else if(vipGroupCourseSchedule.getTeachMode().equals(TeachModeEnum.OFFLINE)){
|
|
|
|
+ courseScheduleStudentPayment.setExpectPrice(offlineCoursePrice);
|
|
|
|
+ }
|
|
|
|
+ courseScheduleStudentPayment.setCreateTime(now);
|
|
|
|
+ courseScheduleStudentPayment.setUpdateTime(now);
|
|
|
|
+ courseScheduleStudentPayments.add(courseScheduleStudentPayment);
|
|
|
|
+ }
|
|
|
|
+ courseScheduleStudentPaymentDao.batchInsert(courseScheduleStudentPayments);
|
|
imGroupMemberList.add(new ImGroupMember(classGroupStudent.getUserId().toString()));
|
|
imGroupMemberList.add(new ImGroupMember(classGroupStudent.getUserId().toString()));
|
|
}
|
|
}
|
|
ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
|
|
ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
|
|
@@ -1742,6 +1786,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
List<VipGroup> needUpdateVipGroups = new ArrayList<>();
|
|
List<VipGroup> needUpdateVipGroups = new ArrayList<>();
|
|
for (VipGroup vipGroup : normalVipGroupList) {
|
|
for (VipGroup vipGroup : normalVipGroupList) {
|
|
try {
|
|
try {
|
|
|
|
+ if(Objects.isNull(vipGroup.getRegistrationStartTime())){
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
if(now.before(vipGroup.getRegistrationStartTime())){
|
|
if(now.before(vipGroup.getRegistrationStartTime())){
|
|
vipGroup.setStatus(VipGroupStatusEnum.NOT_START);
|
|
vipGroup.setStatus(VipGroupStatusEnum.NOT_START);
|
|
}
|
|
}
|