|
@@ -1480,19 +1480,27 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
throw new BizException("未找到指定的vip课程");
|
|
|
}
|
|
|
ClassGroup classGroup = classGroupDao.findByVipGroup(vipGroupId, null);
|
|
|
+
|
|
|
+ Integer exitStudentNum = classGroupStudentMapperDao.countClassGroupExitStudentNum(classGroup.getId(), studentIds);
|
|
|
+ if(exitStudentNum>0){
|
|
|
+ throw new BizException("选择的学生中存在此课程中已存在的学生");
|
|
|
+ }
|
|
|
+
|
|
|
List<CourseSchedule> surplusCourses = courseScheduleDao.findByClassGroupAndStatus(classGroup.getId(), CourseStatusEnum.NOT_START.getCode());
|
|
|
if(CollectionUtils.isEmpty(surplusCourses)){
|
|
|
throw new BizException("此vip课程没有剩余课程计划");
|
|
|
}
|
|
|
+
|
|
|
BigDecimal surplusCoursesPrice=new BigDecimal(0);
|
|
|
- surplusCourses.forEach(courseSchedule -> {
|
|
|
+ for (CourseSchedule courseSchedule : surplusCourses) {
|
|
|
if(courseSchedule.getTeachMode().equals(TeachModeEnum.OFFLINE)){
|
|
|
- surplusCoursesPrice.add(vipGroup.getOfflineClassesUnitPrice());
|
|
|
+ surplusCoursesPrice=surplusCoursesPrice.add(vipGroup.getOfflineClassesUnitPrice());
|
|
|
}else if(courseSchedule.getTeachMode().equals(TeachModeEnum.ONLINE)){
|
|
|
- surplusCoursesPrice.add(vipGroup.getOnlineClassesUnitPrice());
|
|
|
+ surplusCoursesPrice=surplusCoursesPrice.add(vipGroup.getOnlineClassesUnitPrice());
|
|
|
}
|
|
|
- });
|
|
|
+ }
|
|
|
List<ImGroupMember> imGroupMemberList = new ArrayList<>();
|
|
|
+ List<ClassGroupStudentMapper> classGroupStudentMappers=new ArrayList<>();
|
|
|
//生成学生单课缴费信息
|
|
|
for (Integer studentId:studentIds) {
|
|
|
SysUserCashAccount sysUserCashAccount = sysUserCashAccountService.get(studentId);
|
|
@@ -1501,11 +1509,25 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
}
|
|
|
courseScheduleStudentPaymentService.createCourseScheduleStudentPaymentForVipGroup(vipGroupId,studentId);
|
|
|
|
|
|
- sysUserCashAccountService.updateCourseBalance(studentId,surplusCoursesPrice.negate());
|
|
|
+ sysUserCashAccountService.updateCourseBalance(studentId,sysUserCashAccount.getCourseBalance().subtract(surplusCoursesPrice));
|
|
|
+
|
|
|
+ //创建班级学生关联记录
|
|
|
+ ClassGroupStudentMapper classGroupStudentMapper=new ClassGroupStudentMapper();
|
|
|
+ classGroupStudentMapper.setGroupType(classGroup.getGroupType());
|
|
|
+ classGroupStudentMapper.setMusicGroupId(classGroup.getMusicGroupId());
|
|
|
+ classGroupStudentMapper.setClassGroupId(classGroup.getId());
|
|
|
+ classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
|
|
|
+ classGroupStudentMapper.setUserId(studentId);
|
|
|
+ classGroupStudentMappers.add(classGroupStudentMapper);
|
|
|
|
|
|
imGroupMemberList.add(new ImGroupMember(studentId.toString()));
|
|
|
}
|
|
|
|
|
|
+ classGroupStudentMapperDao.classGroupStudentsInsert(classGroupStudentMappers);
|
|
|
+
|
|
|
+ classGroup.setStudentNum(classGroup.getStudentNum()+classGroupStudentMappers.size());
|
|
|
+ classGroupDao.update(classGroup);
|
|
|
+
|
|
|
try {
|
|
|
ImGroupMember[] imGroupMembers = imGroupMemberList.toArray(new ImGroupMember[imGroupMemberList.size()]);
|
|
|
// 创建群组
|