|
@@ -530,10 +530,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
throw new BizException("请选择学员");
|
|
throw new BizException("请选择学员");
|
|
}
|
|
}
|
|
|
|
|
|
- if(Objects.isNull(vipGroupApplyBaseInfoDto.getOnlineTeacherSalary())||Objects.isNull(vipGroupApplyBaseInfoDto.getOfflineTeacherSalary())){
|
|
|
|
- throw new BizException("请设置教师课酬");
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
Integer totalClassTimes=vipGroupApplyBaseInfoDto.getOnlineClassesNum()+vipGroupApplyBaseInfoDto.getOfflineClassesNum();
|
|
Integer totalClassTimes=vipGroupApplyBaseInfoDto.getOnlineClassesNum()+vipGroupApplyBaseInfoDto.getOfflineClassesNum();
|
|
//获取第一节课
|
|
//获取第一节课
|
|
CourseSchedule firstCourseSchedule = vipGroup.getCourseSchedules().stream().min(Comparator.comparing(CourseSchedule::getStartClassTime)).get();
|
|
CourseSchedule firstCourseSchedule = vipGroup.getCourseSchedules().stream().min(Comparator.comparing(CourseSchedule::getStartClassTime)).get();
|
|
@@ -548,11 +544,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
throw new BizException("报名开始时间必须在报名截至时间之前");
|
|
throw new BizException("报名开始时间必须在报名截至时间之前");
|
|
}
|
|
}
|
|
|
|
|
|
- if(vipGroupApplyBaseInfoDto.getPaymentExpireDate().after(firstCourseSchedule.getStartClassTime())
|
|
|
|
- ||DateUtil.isSameDay(vipGroupApplyBaseInfoDto.getPaymentExpireDate(),firstCourseSchedule.getEndClassTime())){
|
|
|
|
- throw new BizException("创建失败,报名截止时间必须在开课时间前一天");
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
List<Integer> canBuyStudentIds = Arrays.stream(vipGroupApplyBaseInfoDto.getStudentIdList().split(",")).map(e -> Integer.valueOf(e)).collect(Collectors.toList());
|
|
List<Integer> canBuyStudentIds = Arrays.stream(vipGroupApplyBaseInfoDto.getStudentIdList().split(",")).map(e -> Integer.valueOf(e)).collect(Collectors.toList());
|
|
List<VipGroupStudentCoursePrice> vscps = vipGroup.getVipGroupApplyBaseInfo().getVipGroupStudentCoursePrices();
|
|
List<VipGroupStudentCoursePrice> vscps = vipGroup.getVipGroupApplyBaseInfo().getVipGroupStudentCoursePrices();
|
|
|
|
|
|
@@ -623,13 +614,21 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
className.append(StringUtils.join(studentNames, ","));
|
|
className.append(StringUtils.join(studentNames, ","));
|
|
vipGroupApplyBaseInfoDto.setName(className.toString());
|
|
vipGroupApplyBaseInfoDto.setName(className.toString());
|
|
|
|
|
|
- //计算课程相关费用信息
|
|
|
|
- Map<String, BigDecimal> costInfo = countVipGroupPredictFee(vipGroupApplyBaseInfoDto,
|
|
|
|
- vipGroupApplyBaseInfoDto.getUserId(), null);
|
|
|
|
|
|
|
|
- vipGroupApplyBaseInfoDto.setAuditStatus(AuditStatusEnum.PASS);
|
|
|
|
|
|
+ if(!vipGroupApplyBaseInfoDto.getFreeCourse()){
|
|
|
|
+ //计算课程相关费用信息
|
|
|
|
+ Map<String, BigDecimal> costInfo = countVipGroupPredictFee(vipGroupApplyBaseInfoDto,
|
|
|
|
+ vipGroupApplyBaseInfoDto.getUserId(), null);
|
|
|
|
+ vipGroupApplyBaseInfoDto.setOnlineTeacherSalary(costInfo.get("onlineTeacherSalary"));
|
|
|
|
+ vipGroupApplyBaseInfoDto.setOfflineTeacherSalary(costInfo.get("offlineTeacherSalary"));
|
|
|
|
+ vipGroupApplyBaseInfoDto.setTotalPrice(costInfo.get("totalPrice"));
|
|
|
|
+ }else{
|
|
|
|
+ vipGroupApplyBaseInfoDto.setOnlineTeacherSalary(BigDecimal.ZERO);
|
|
|
|
+ vipGroupApplyBaseInfoDto.setOfflineTeacherSalary(BigDecimal.ZERO);
|
|
|
|
+ vipGroupApplyBaseInfoDto.setTotalPrice(BigDecimal.ZERO);
|
|
|
|
+ }
|
|
|
|
|
|
- vipGroupApplyBaseInfoDto.setTotalPrice(costInfo.get("totalPrice"));
|
|
|
|
|
|
+ vipGroupApplyBaseInfoDto.setAuditStatus(AuditStatusEnum.PASS);
|
|
vipGroupApplyBaseInfoDto.setStatus(VipGroupStatusEnum.PROGRESS);
|
|
vipGroupApplyBaseInfoDto.setStatus(VipGroupStatusEnum.PROGRESS);
|
|
|
|
|
|
if(CollectionUtils.isEmpty(vscps)){
|
|
if(CollectionUtils.isEmpty(vscps)){
|
|
@@ -706,7 +705,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
classGroupStudentMapper.setUserId(studentId);
|
|
classGroupStudentMapper.setUserId(studentId);
|
|
classGroupStudentMapper.setCreateTime(now);
|
|
classGroupStudentMapper.setCreateTime(now);
|
|
classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
|
|
classGroupStudentMapper.setStatus(ClassGroupStudentStatusEnum.NORMAL);
|
|
- classGroupStudentMapper.setGroupType(GroupType.MUSIC);
|
|
|
|
|
|
+ classGroupStudentMapper.setGroupType(GroupType.VIP);
|
|
classGroupStudentMapperList.add(classGroupStudentMapper);
|
|
classGroupStudentMapperList.add(classGroupStudentMapper);
|
|
}
|
|
}
|
|
classGroupStudentMapperDao.classGroupStudentsInsert(classGroupStudentMapperList);
|
|
classGroupStudentMapperDao.classGroupStudentsInsert(classGroupStudentMapperList);
|
|
@@ -744,7 +743,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
for (CourseSchedule courseSchedule : courseSchedules) {
|
|
for (CourseSchedule courseSchedule : courseSchedules) {
|
|
CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
|
|
CourseScheduleTeacherSalary courseScheduleTeacherSalary = new CourseScheduleTeacherSalary();
|
|
courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId());
|
|
courseScheduleTeacherSalary.setCourseScheduleId(courseSchedule.getId());
|
|
- courseScheduleTeacherSalary.setGroupType(GroupType.MUSIC);
|
|
|
|
|
|
+ courseScheduleTeacherSalary.setGroupType(GroupType.VIP);
|
|
courseScheduleTeacherSalary.setMusicGroupId(classGroup.getMusicGroupId());
|
|
courseScheduleTeacherSalary.setMusicGroupId(classGroup.getMusicGroupId());
|
|
courseScheduleTeacherSalary.setTeacherRole(classGroupTeacherMapper.getTeacherRole());
|
|
courseScheduleTeacherSalary.setTeacherRole(classGroupTeacherMapper.getTeacherRole());
|
|
courseScheduleTeacherSalary.setUserId(vipGroupApplyBaseInfoDto.getTeacherId().intValue());
|
|
courseScheduleTeacherSalary.setUserId(vipGroupApplyBaseInfoDto.getTeacherId().intValue());
|
|
@@ -752,17 +751,32 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
courseScheduleTeacherSalary.setCreateTime(now);
|
|
courseScheduleTeacherSalary.setCreateTime(now);
|
|
courseScheduleTeacherSalary.setUpdateTime(now);
|
|
courseScheduleTeacherSalary.setUpdateTime(now);
|
|
courseScheduleTeacherSalary.setClassGroupId(classGroup.getId());
|
|
courseScheduleTeacherSalary.setClassGroupId(classGroup.getId());
|
|
|
|
+ courseScheduleTeacherSalary.setEnableChangeSalary(false);
|
|
courseScheduleTeacherSalaries.add(courseScheduleTeacherSalary);
|
|
courseScheduleTeacherSalaries.add(courseScheduleTeacherSalary);
|
|
}
|
|
}
|
|
|
|
+ List<TeacherAttendance> teacherAttendances = new ArrayList<>();
|
|
|
|
+ for (CourseScheduleTeacherSalary courseScheduleTeacherSalary : courseScheduleTeacherSalaries) {
|
|
|
|
+ TeacherAttendance teacherAttendance = new TeacherAttendance();
|
|
|
|
+ teacherAttendance.setGroupType(courseScheduleTeacherSalary.getGroupType());
|
|
|
|
+ teacherAttendance.setClassGroupId(courseScheduleTeacherSalary.getClassGroupId());
|
|
|
|
+ teacherAttendance.setMusicGroupId(courseScheduleTeacherSalary.getMusicGroupId());
|
|
|
|
+ teacherAttendance.setTeacherId(courseScheduleTeacherSalary.getUserId());
|
|
|
|
+ teacherAttendance.setCourseScheduleId(courseScheduleTeacherSalary.getCourseScheduleId());
|
|
|
|
+ teacherAttendances.add(teacherAttendance);
|
|
|
|
+ }
|
|
courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaries);
|
|
courseScheduleTeacherSalaryDao.batchInsert(courseScheduleTeacherSalaries);
|
|
|
|
+ if (!CollectionUtils.isEmpty(teacherAttendances)) {
|
|
|
|
+ teacherAttendanceDao.batchInsert(teacherAttendances);
|
|
|
|
+ }
|
|
}else{
|
|
}else{
|
|
courseScheduleTeacherSalaryService.createCourseScheduleTeacherVipSalary(vipGroupApplyBaseInfoDto,
|
|
courseScheduleTeacherSalaryService.createCourseScheduleTeacherVipSalary(vipGroupApplyBaseInfoDto,
|
|
courseSchedules,
|
|
courseSchedules,
|
|
classGroupTeacherSalary.getOnlineClassesSalary(),
|
|
classGroupTeacherSalary.getOnlineClassesSalary(),
|
|
classGroupTeacherSalary.getSalary());
|
|
classGroupTeacherSalary.getSalary());
|
|
|
|
+ courseScheduleTeacherSalaryDao.updateEnableChangeSalaryByClassGroup(classGroup.getId().longValue(), false);
|
|
}
|
|
}
|
|
|
|
|
|
- SysUser sysUser = sysUserFeignService.queryUserById(vipGroupApplyBaseInfoDto.getUserId());
|
|
|
|
|
|
+// SysUser sysUser = sysUserFeignService.queryUserById(vipGroupApplyBaseInfoDto.getUserId());
|
|
|
|
|
|
List<ClassGroupStudentMapper> classGroupStudents = classGroupStudentMapperDao.findByClassGroup(classGroup.getId());
|
|
List<ClassGroupStudentMapper> classGroupStudents = classGroupStudentMapperDao.findByClassGroup(classGroup.getId());
|
|
|
|
|
|
@@ -799,40 +813,41 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
|
|
|
courseScheduleService.checkNewCourseSchedules(courseSchedules, false,false);
|
|
courseScheduleService.checkNewCourseSchedules(courseSchedules, false,false);
|
|
|
|
|
|
- try {
|
|
|
|
- imGroupService.create(classGroup.getId().longValue(), null, classGroup.getName(), classGroup.getName(), vipGroupApplyBaseInfoDto.getName(), null, null, GroupType.VIP.getCode());
|
|
|
|
- imGroupMemberService.join(classGroup.getId().longValue(), userRoleMap);
|
|
|
|
- imUserFriendService.refreshGroupImUserFriend(classGroup.getMusicGroupId(),classGroup.getGroupType());
|
|
|
|
|
|
+// try {
|
|
|
|
+// imGroupService.create(classGroup.getId().longValue(), null, classGroup.getName(), classGroup.getName(), vipGroupApplyBaseInfoDto.getName(), null, null, GroupType.VIP.getCode());
|
|
|
|
+// imGroupMemberService.join(classGroup.getId().longValue(), userRoleMap);
|
|
|
|
+// imUserFriendService.refreshGroupImUserFriend(classGroup.getMusicGroupId(),classGroup.getGroupType());
|
|
//发送推送短信
|
|
//发送推送短信
|
|
- Map<Integer,String> map = new HashMap<>(1);
|
|
|
|
- map.put(vipGroupApplyBaseInfoDto.getUserId(),sysUser.getPhone());
|
|
|
|
- sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS,MessageTypeEnum.TEACHER_SMS_VIP_COURSE_ADD,
|
|
|
|
- map,null,0,"","",vipGroupApplyBaseInfoDto.getName());
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- e.printStackTrace();
|
|
|
|
- }
|
|
|
|
|
|
+// Map<Integer,String> map = new HashMap<>(1);
|
|
|
|
+// map.put(vipGroupApplyBaseInfoDto.getUserId(),sysUser.getPhone());
|
|
|
|
+// sysMessageService.batchSendMessage(MessageSenderPluginContext.MessageSender.AWSMS,MessageTypeEnum.TEACHER_SMS_VIP_COURSE_ADD,
|
|
|
|
+// map,null,0,"","",vipGroupApplyBaseInfoDto.getName());
|
|
|
|
+// } catch (Exception e) {
|
|
|
|
+// e.printStackTrace();
|
|
|
|
+// }
|
|
|
|
|
|
- Set<Integer> roleIds = new HashSet<>(1);
|
|
|
|
- roleIds.add(SysUserRole.SECTION_MANAGER);
|
|
|
|
- Map<String,Long> memo = new HashMap<>(1);
|
|
|
|
- memo.put("vipGroupId",vipGroupApplyBaseInfoDto.getId());
|
|
|
|
- if(Objects.isNull(teacher)){
|
|
|
|
- throw new BizException("该用户不存在");
|
|
|
|
- }
|
|
|
|
- Set<Integer> userIds = musicGroupDao.queryUserIdByRoleId(roleIds,teacher.getTeacherOrganId());
|
|
|
|
- if(CollectionUtils.isEmpty(userIds)){
|
|
|
|
- throw new BizException("当前分部没有运营主管,无法创建,请联系总部工作人员!");
|
|
|
|
- }
|
|
|
|
- if(vipGroupApplyBaseInfoDto.getEducationalTeacherId() != null){
|
|
|
|
- userIds.add(vipGroupApplyBaseInfoDto.getEducationalTeacherId());
|
|
|
|
- }
|
|
|
|
|
|
+// Set<Integer> roleIds = new HashSet<>(1);
|
|
|
|
+// roleIds.add(SysUserRole.SECTION_MANAGER);
|
|
|
|
+// Map<String,Long> memo = new HashMap<>(1);
|
|
|
|
+// memo.put("vipGroupId",vipGroupApplyBaseInfoDto.getId());
|
|
|
|
+// if(Objects.isNull(teacher)){
|
|
|
|
+// throw new BizException("该用户不存在");
|
|
|
|
+// }
|
|
|
|
+// Set<Integer> userIds = musicGroupDao.queryUserIdByRoleId(roleIds,teacher.getTeacherOrganId());
|
|
|
|
+// if(CollectionUtils.isEmpty(userIds)){
|
|
|
|
+// throw new BizException("当前分部没有运营主管,无法创建,请联系总部工作人员!");
|
|
|
|
+// }
|
|
|
|
+// if(vipGroupApplyBaseInfoDto.getEducationalTeacherId() != null){
|
|
|
|
+// userIds.add(vipGroupApplyBaseInfoDto.getEducationalTeacherId());
|
|
|
|
+// }
|
|
|
|
|
|
- sysMessageService.batchSeoMessage(userIds,MessageTypeEnum.BACKSTAGE_TEACHER_APPLY_VIP, JSONObject.toJSONString(memo),teacher.getRealName());
|
|
|
|
|
|
+// sysMessageService.batchSeoMessage(userIds,MessageTypeEnum.BACKSTAGE_TEACHER_APPLY_VIP, JSONObject.toJSONString(memo),teacher.getRealName());
|
|
|
|
|
|
return BaseController.succeed(vipGroupApplyBaseInfoDto.getAuditStatus().getCode());
|
|
return BaseController.succeed(vipGroupApplyBaseInfoDto.getAuditStatus().getCode());
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
public HttpResponseResult importActivityVipGroup(String data) {
|
|
public HttpResponseResult importActivityVipGroup(String data) {
|
|
if(StringUtils.isBlank(data)){
|
|
if(StringUtils.isBlank(data)){
|
|
return BaseController.succeed();
|
|
return BaseController.succeed();
|
|
@@ -841,14 +856,23 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
Date date = new Date();
|
|
Date date = new Date();
|
|
for (JSONObject courseData : datas) {
|
|
for (JSONObject courseData : datas) {
|
|
boolean skipHoliday = "是".equals(courseData.getString("skip_holiday"))?true:false;
|
|
boolean skipHoliday = "是".equals(courseData.getString("skip_holiday"))?true:false;
|
|
|
|
+ String vipGroupActivityName = courseData.getString("vip_group_activity");
|
|
String vipGroupCategoryStr = courseData.getString("vip_group_category");
|
|
String vipGroupCategoryStr = courseData.getString("vip_group_category");
|
|
- int courseMinute = "考前辅导课".equals(vipGroupCategoryStr)?25:45;
|
|
|
|
|
|
+ boolean freeCourse = "考前辅导课".equals(vipGroupCategoryStr);
|
|
|
|
+ int courseMinute = freeCourse?25:45;
|
|
String vipGroupCategoryName = "1v1".equals(vipGroupCategoryStr)?"1v1":"1v2";
|
|
String vipGroupCategoryName = "1v1".equals(vipGroupCategoryStr)?"1v1":"1v2";
|
|
- int onlineCourseNum = courseData.getIntValue("online_course_num");
|
|
|
|
- int onlineWeekNum = courseData.getIntValue("online_course_week_num");
|
|
|
|
|
|
+ Integer schoolId = courseData.getInteger("school_id");
|
|
|
|
+ int onlineCourseNum = StringUtils.isBlank(courseData.getString("online_course_num"))?0:courseData.getIntValue("online_course_num");
|
|
|
|
+ int onlineWeekNum = 0;
|
|
|
|
+ if(onlineCourseNum>0){
|
|
|
|
+ onlineWeekNum = courseData.getIntValue("online_course_week_num");
|
|
|
|
+ }
|
|
String onlineCourseStartTime = courseData.getString("online_course_start_time");
|
|
String onlineCourseStartTime = courseData.getString("online_course_start_time");
|
|
- int offlineCourseNum = courseData.getIntValue("offline_course_num");
|
|
|
|
- int offlineWeekNum = courseData.getIntValue("offline_course_week_num");
|
|
|
|
|
|
+ int offlineCourseNum = StringUtils.isBlank(courseData.getString("offline_course_num"))?0:courseData.getIntValue("offline_course_num");
|
|
|
|
+ int offlineWeekNum = 0;
|
|
|
|
+ if(offlineCourseNum>0){
|
|
|
|
+ offlineWeekNum = courseData.getIntValue("offline_course_week_num");
|
|
|
|
+ }
|
|
String offlineCourseStartTime = courseData.getString("offline_course_start_time");
|
|
String offlineCourseStartTime = courseData.getString("offline_course_start_time");
|
|
int totalCourseNum = onlineCourseNum + offlineCourseNum;
|
|
int totalCourseNum = onlineCourseNum + offlineCourseNum;
|
|
Integer teacherId = courseData.getInteger("teacher_id");
|
|
Integer teacherId = courseData.getInteger("teacher_id");
|
|
@@ -858,16 +882,34 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
}
|
|
}
|
|
List<Integer> studentIds = Arrays.stream(studentIdsStr.split(",")).map(id -> Integer.valueOf(id)).collect(Collectors.toList());
|
|
List<Integer> studentIds = Arrays.stream(studentIdsStr.split(",")).map(id -> Integer.valueOf(id)).collect(Collectors.toList());
|
|
SysUser student = studentDao.getUser(studentIds.get(0));
|
|
SysUser student = studentDao.getUser(studentIds.get(0));
|
|
|
|
+ Student stu = studentDao.get(studentIds.get(0));
|
|
|
|
+ if(Objects.isNull(student)){
|
|
|
|
+ throw new BizException("学员信息异常");
|
|
|
|
+ }
|
|
|
|
|
|
List<VipGroupCategory> vipGroupCategories = vipGroupCategoryDao.findAllByOrgan(student.getOrganId().toString());
|
|
List<VipGroupCategory> vipGroupCategories = vipGroupCategoryDao.findAllByOrgan(student.getOrganId().toString());
|
|
VipGroupCategory vipGroupCategory = vipGroupCategories.stream().filter(v -> v.getName().equals(vipGroupCategoryName)).findFirst().get();
|
|
VipGroupCategory vipGroupCategory = vipGroupCategories.stream().filter(v -> v.getName().equals(vipGroupCategoryName)).findFirst().get();
|
|
|
|
|
|
- LocalDate onlineCourseStartDay = LocalDate.parse(courseData.getString("online_course_start_day"), DateUtil.dateFormatter);
|
|
|
|
- LocalDate offlineCourseStartDay = LocalDate.parse(courseData.getString("offline_course_start_day"), DateUtil.dateFormatter);
|
|
|
|
|
|
+ List<VipGroupActivity> vipGroupActivities = vipGroupActivityDao.findByName(vipGroupActivityName);
|
|
|
|
+ VipGroupActivity vipGroupActivity = null;
|
|
|
|
+ if(!CollectionUtils.isEmpty(vipGroupActivities)){
|
|
|
|
+ vipGroupActivity = vipGroupActivities.get(0);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ LocalDate courseStartDay = null;
|
|
|
|
+ LocalDate onlineCourseStartDay = null;
|
|
|
|
+ LocalDate offlineCourseStartDay = null;
|
|
|
|
+
|
|
|
|
+ if(onlineCourseNum>0){
|
|
|
|
+ onlineCourseStartDay = LocalDate.parse(courseData.getString("online_course_start_day").replace(" 00:00:00", ""), DateUtil.dateFormatter);
|
|
|
|
+ courseStartDay = onlineCourseStartDay;
|
|
|
|
+ }
|
|
|
|
|
|
- LocalDate courseStartDay = onlineCourseStartDay;
|
|
|
|
- if(onlineCourseStartDay.compareTo(offlineCourseStartDay)>0){
|
|
|
|
- courseStartDay = offlineCourseStartDay;
|
|
|
|
|
|
+ if(offlineCourseNum>0){
|
|
|
|
+ offlineCourseStartDay = LocalDate.parse(courseData.getString("offline_course_start_day").replace(" 00:00:00", ""), DateUtil.dateFormatter);
|
|
|
|
+ if(Objects.isNull(courseStartDay)||onlineCourseStartDay.compareTo(offlineCourseStartDay)>0){
|
|
|
|
+ courseStartDay = offlineCourseStartDay;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
Set<String> holidayDays = new HashSet<>();
|
|
Set<String> holidayDays = new HashSet<>();
|
|
@@ -890,13 +932,13 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
}
|
|
}
|
|
int dayOfWeek = courseStartDay.getDayOfWeek().getValue();//当前星期
|
|
int dayOfWeek = courseStartDay.getDayOfWeek().getValue();//当前星期
|
|
|
|
|
|
- if (onlineWeekNum < 1 || onlineWeekNum > 7) {
|
|
|
|
|
|
+ if (onlineCourseNumCreated<onlineCourseNum&&(onlineWeekNum < 1 || onlineWeekNum > 7)) {
|
|
throw new BizException("排课循环周期错误,请核查");
|
|
throw new BizException("排课循环周期错误,请核查");
|
|
}
|
|
}
|
|
- if(courseStartDay.compareTo(onlineCourseStartDay)>=0&&onlineCourseNumCreated<onlineCourseNum&&dayOfWeek==onlineWeekNum){
|
|
|
|
|
|
+ if(onlineCourseNumCreated<onlineCourseNum&&courseStartDay.compareTo(onlineCourseStartDay)>=0&&dayOfWeek==onlineWeekNum){
|
|
Date classDate = DateConvertor.toDate(courseStartDay);
|
|
Date classDate = DateConvertor.toDate(courseStartDay);
|
|
String startClassTime = DateUtil.getDate(classDate) + " " + onlineCourseStartTime;
|
|
String startClassTime = DateUtil.getDate(classDate) + " " + onlineCourseStartTime;
|
|
- String endClassTime = DateUtil.dateToString(DateUtil.addMinutes(DateUtil.stringToDate(startClassTime), courseMinute));
|
|
|
|
|
|
+ String endClassTime = DateUtil.dateToString(DateUtil.addMinutes(DateUtil.stringToDate(startClassTime, "yyyy-MM-dd HH:mm:ss"), courseMinute), "yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
|
CourseSchedule courseSchedule = new CourseSchedule();
|
|
CourseSchedule courseSchedule = new CourseSchedule();
|
|
courseSchedule.setStatus(CourseStatusEnum.NOT_START);
|
|
courseSchedule.setStatus(CourseStatusEnum.NOT_START);
|
|
@@ -913,16 +955,16 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
courseSchedule.setActualTeacherId(teacherId);
|
|
courseSchedule.setActualTeacherId(teacherId);
|
|
courseSchedules.add(courseSchedule);
|
|
courseSchedules.add(courseSchedule);
|
|
|
|
|
|
- onlineCourseNum++;
|
|
|
|
|
|
+ onlineCourseNumCreated++;
|
|
}
|
|
}
|
|
|
|
|
|
- if (offlineWeekNum < 1 || offlineWeekNum > 7) {
|
|
|
|
|
|
+ if (offlineCourseNumCreated<offlineCourseNum&&(offlineWeekNum < 1 || offlineWeekNum > 7)) {
|
|
throw new BizException("排课循环周期错误,请核查");
|
|
throw new BizException("排课循环周期错误,请核查");
|
|
}
|
|
}
|
|
- if(courseStartDay.compareTo(offlineCourseStartDay)>=0&&offlineCourseNumCreated<offlineCourseNum&&dayOfWeek==offlineWeekNum){
|
|
|
|
|
|
+ if(offlineCourseNumCreated<offlineCourseNum&&courseStartDay.compareTo(offlineCourseStartDay)>=0&&dayOfWeek==offlineWeekNum){
|
|
Date classDate = DateConvertor.toDate(courseStartDay);
|
|
Date classDate = DateConvertor.toDate(courseStartDay);
|
|
String startClassTime = DateUtil.getDate(classDate) + " " + offlineCourseStartTime;
|
|
String startClassTime = DateUtil.getDate(classDate) + " " + offlineCourseStartTime;
|
|
- String endClassTime = DateUtil.dateToString(DateUtil.addMinutes(DateUtil.stringToDate(startClassTime), courseMinute));
|
|
|
|
|
|
+ String endClassTime = DateUtil.dateToString(DateUtil.addMinutes(DateUtil.stringToDate(startClassTime, "yyyy-MM-dd HH:mm:ss"), courseMinute), "yyyy-MM-dd HH:mm:ss");
|
|
|
|
|
|
CourseSchedule courseSchedule = new CourseSchedule();
|
|
CourseSchedule courseSchedule = new CourseSchedule();
|
|
courseSchedule.setStatus(CourseStatusEnum.NOT_START);
|
|
courseSchedule.setStatus(CourseStatusEnum.NOT_START);
|
|
@@ -931,6 +973,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
courseSchedule.setEndClassTime(DateUtil.stringToDate(endClassTime));
|
|
courseSchedule.setEndClassTime(DateUtil.stringToDate(endClassTime));
|
|
courseSchedule.setCreateTime(date);
|
|
courseSchedule.setCreateTime(date);
|
|
courseSchedule.setUpdateTime(date);
|
|
courseSchedule.setUpdateTime(date);
|
|
|
|
+ courseSchedule.setSchoolId(schoolId);
|
|
courseSchedule.setTeachMode(TeachModeEnum.OFFLINE);
|
|
courseSchedule.setTeachMode(TeachModeEnum.OFFLINE);
|
|
courseSchedule.setType(CourseSchedule.CourseScheduleType.VIP);
|
|
courseSchedule.setType(CourseSchedule.CourseScheduleType.VIP);
|
|
courseSchedule.setGroupType(VIP);
|
|
courseSchedule.setGroupType(VIP);
|
|
@@ -939,7 +982,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
courseSchedule.setActualTeacherId(teacherId);
|
|
courseSchedule.setActualTeacherId(teacherId);
|
|
courseSchedules.add(courseSchedule);
|
|
courseSchedules.add(courseSchedule);
|
|
|
|
|
|
- offlineCourseNum++;
|
|
|
|
|
|
+ offlineCourseNumCreated++;
|
|
}
|
|
}
|
|
|
|
|
|
if (courseSchedules.size()>=totalCourseNum) {
|
|
if (courseSchedules.size()>=totalCourseNum) {
|
|
@@ -949,9 +992,38 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
courseStartDay = courseStartDay.plusDays(1);
|
|
courseStartDay = courseStartDay.plusDays(1);
|
|
}
|
|
}
|
|
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- return null;
|
|
|
|
|
|
+ VipGroupApplyDto vipGroupApplyDto = new VipGroupApplyDto();
|
|
|
|
+ VipGroupApplyBaseInfoDto vipGroupApplyBaseInfoDto = new VipGroupApplyBaseInfoDto();
|
|
|
|
+ vipGroupApplyBaseInfoDto.setStudentIdList(studentIdsStr);
|
|
|
|
+
|
|
|
|
+ vipGroupApplyBaseInfoDto.setAllCourseNum(totalCourseNum);
|
|
|
|
+ vipGroupApplyBaseInfoDto.setTeacherId(teacherId.longValue());
|
|
|
|
+ vipGroupApplyBaseInfoDto.setSubjectIdList(stu.getSubjectIdList());
|
|
|
|
+ vipGroupApplyBaseInfoDto.setFirstStudentId(studentIds.get(0));
|
|
|
|
+ vipGroupApplyBaseInfoDto.setUserId(teacherId);
|
|
|
|
+ vipGroupApplyBaseInfoDto.setSingleClassMinutes(courseMinute);
|
|
|
|
+ vipGroupApplyBaseInfoDto.setRegistrationStartTime(date);
|
|
|
|
+ vipGroupApplyBaseInfoDto.setPaymentExpireDate(date);
|
|
|
|
+ vipGroupApplyBaseInfoDto.setCourseStartDate(courseSchedules.get(0).getStartClassTime());
|
|
|
|
+ vipGroupApplyBaseInfoDto.setCoursesExpireDate(courseSchedules.get(courseSchedules.size()-1).getEndClassTime());
|
|
|
|
+ vipGroupApplyBaseInfoDto.setTeacherSchoolId(schoolId);
|
|
|
|
+ vipGroupApplyBaseInfoDto.setOnlineClassesNum(onlineCourseNum);
|
|
|
|
+ vipGroupApplyBaseInfoDto.setOfflineClassesNum(offlineCourseNum);
|
|
|
|
+ vipGroupApplyBaseInfoDto.setVipGroupCategoryId(vipGroupCategory.getId());
|
|
|
|
+ vipGroupApplyBaseInfoDto.setFreeCourse(freeCourse);
|
|
|
|
+ if(Objects.nonNull(vipGroupActivity)){
|
|
|
|
+ vipGroupApplyBaseInfoDto.setVipGroupActivityId(vipGroupActivity.getId());
|
|
|
|
+ }
|
|
|
|
+ vipGroupApplyBaseInfoDto.setOrganId(student.getOrganId());
|
|
|
|
+ vipGroupApplyBaseInfoDto.setOnlineClassesUnitPrice(vipGroupCategory.getOnlineClassesUnitPrice());
|
|
|
|
+ vipGroupApplyBaseInfoDto.setOfflineClassesUnitPrice(vipGroupCategory.getOfflineClassesUnitPrice());
|
|
|
|
+ vipGroupApplyDto.setVipGroupApplyBaseInfo(vipGroupApplyBaseInfoDto);
|
|
|
|
+
|
|
|
|
+ vipGroupApplyDto.setCourseSchedules(courseSchedules);
|
|
|
|
+ createActivityVipGroup(vipGroupApplyDto);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return BaseController.succeed();
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|