|
@@ -21,6 +21,7 @@ import java.util.Set;
|
|
|
import java.util.function.Function;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+import com.google.common.collect.Lists;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
import org.slf4j.Logger;
|
|
|
import org.slf4j.LoggerFactory;
|
|
@@ -303,8 +304,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
@Autowired
|
|
|
private SysUserCashAccountLogService sysUserCashAccountLogService;
|
|
|
|
|
|
- private static final Logger LOGGER = LoggerFactory
|
|
|
- .getLogger(VipGroup.class);
|
|
|
+ private static final Logger LOGGER = LoggerFactory.getLogger(VipGroup.class);
|
|
|
|
|
|
@Override
|
|
|
public BaseDAO<Long, VipGroup> getDAO() {
|
|
@@ -315,6 +315,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
@Override
|
|
|
public HttpResponseResult createVipGroup(VipGroupApplyDto vipGroup) {
|
|
|
|
|
|
+ // VIP, LIVE课程公共参数校验
|
|
|
if (Objects.isNull(vipGroup.getVipGroupApplyBaseInfo().getUserId())) {
|
|
|
throw new BizException("请选择指导老师");
|
|
|
}
|
|
@@ -323,30 +324,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
throw new BizException("建课失败,当前课程存在未排课课程,请调整相关设置");
|
|
|
}
|
|
|
|
|
|
- Map<TeachModeEnum, List<CourseSchedule>> courseScheduleGroup;
|
|
|
- try {
|
|
|
- courseScheduleGroup = vipGroup.getCourseSchedules().stream().collect(Collectors.groupingBy(CourseSchedule::getTeachMode));
|
|
|
- } catch (Exception e) {
|
|
|
- throw new BizException("教学模式错误");
|
|
|
- }
|
|
|
-
|
|
|
- if ((Objects.isNull(courseScheduleGroup.get(TeachModeEnum.OFFLINE)) && vipGroup.getVipGroupApplyBaseInfo().getOfflineClassesNum() != 0)
|
|
|
- || (!Objects.isNull(courseScheduleGroup.get(TeachModeEnum.OFFLINE)) && (courseScheduleGroup.get(TeachModeEnum.OFFLINE).size() < vipGroup.getVipGroupApplyBaseInfo().getOfflineClassesNum()))) {
|
|
|
- throw new BizException("线下课课时数量安排有误");
|
|
|
- }
|
|
|
-
|
|
|
- if ((Objects.isNull(courseScheduleGroup.get(TeachModeEnum.ONLINE)) && vipGroup.getVipGroupApplyBaseInfo().getOnlineClassesNum() != 0)
|
|
|
- || (!Objects.isNull(courseScheduleGroup.get(TeachModeEnum.ONLINE)) && (courseScheduleGroup.get(TeachModeEnum.ONLINE).size() < vipGroup.getVipGroupApplyBaseInfo().getOnlineClassesNum()))) {
|
|
|
- throw new BizException("线上课课时数量安排有误");
|
|
|
- }
|
|
|
-
|
|
|
- if (vipGroup.getVipGroupApplyBaseInfo().getOfflineClassesNum() > 0
|
|
|
- && Objects.isNull(vipGroup.getVipGroupApplyBaseInfo().getTeacherSchoolId())) {
|
|
|
- throw new BizException("请设置教学点");
|
|
|
- }
|
|
|
-
|
|
|
- Date now = new Date();
|
|
|
-
|
|
|
+ // 学生购买价格,老师课薪设置校验
|
|
|
VipGroupApplyBaseInfoDto vipGroupApplyBaseInfoDto = vipGroup.getVipGroupApplyBaseInfo();
|
|
|
|
|
|
if (Objects.isNull(vipGroupApplyBaseInfoDto.getOfflineClassesUnitPrice())
|
|
@@ -354,24 +332,18 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
throw new BizException("请设置课程单价");
|
|
|
}
|
|
|
|
|
|
- if (StringUtils.isBlank(vipGroupApplyBaseInfoDto.getStudentIdList())) {
|
|
|
- throw new BizException("请选择学员");
|
|
|
- }
|
|
|
- //校验机构可排线上课人数上线
|
|
|
- if (vipGroup.getVipGroupApplyBaseInfo().getOnlineClassesNum() > 0) {
|
|
|
- courseScheduleService.checkOnlineCategory(vipGroupApplyBaseInfoDto.getStudentNum());
|
|
|
- }
|
|
|
-
|
|
|
if (Objects.isNull(vipGroupApplyBaseInfoDto.getOfflineTeacherSalary())) {
|
|
|
throw new BizException("请设置教师课酬");
|
|
|
}
|
|
|
|
|
|
+ // 课程时间校验
|
|
|
Integer totalClassTimes = vipGroupApplyBaseInfoDto.getOnlineClassesNum() + vipGroupApplyBaseInfoDto.getOfflineClassesNum();
|
|
|
//获取第一节课
|
|
|
CourseSchedule firstCourseSchedule = vipGroup.getCourseSchedules().stream().min(Comparator.comparing(CourseSchedule::getStartClassTime)).get();
|
|
|
//获取最后一节课
|
|
|
CourseSchedule latestCourseSchedule = vipGroup.getCourseSchedules().stream().max(Comparator.comparing(CourseSchedule::getEndClassTime)).get();
|
|
|
|
|
|
+ Date now = new Date();
|
|
|
if (firstCourseSchedule.getStartClassTime().before(now)) {
|
|
|
throw new BizException("开课时间不能小于当前时间");
|
|
|
}
|
|
@@ -385,54 +357,6 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
throw new BizException("创建失败,报名截止时间必须在开课时间前一天");
|
|
|
}
|
|
|
|
|
|
- List<Integer> canBuyStudentIds = Arrays.stream(vipGroupApplyBaseInfoDto.getStudentIdList().split(",")).map(e -> Integer.valueOf(e)).collect(Collectors.toList());
|
|
|
- List<VipGroupStudentCoursePrice> vscps = vipGroup.getVipGroupApplyBaseInfo().getVipGroupStudentCoursePrices();
|
|
|
-
|
|
|
- //获取活动信息
|
|
|
- VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(vipGroup.getVipGroupApplyBaseInfo().getVipGroupActivityId());
|
|
|
- if (!vipGroup.getAllowOverstepActivityStudentNum() && Objects.nonNull(vipGroupActivity)
|
|
|
- && Objects.nonNull(vipGroupActivity.getStudentMaxUsedTimes()) && vipGroupActivity.getStudentMaxUsedTimes() != -1 &&
|
|
|
-
|
|
|
- StringUtils.isNotBlank(vipGroupApplyBaseInfoDto.getStudentIdList())) {
|
|
|
- List<String> tempStudentIds = Arrays.asList(vipGroupApplyBaseInfoDto.getStudentIdList().split(","));
|
|
|
- List<Integer> errStudentIds = new ArrayList<>();
|
|
|
- for (String studentIdStr : tempStudentIds) {
|
|
|
- int useNum = activityUserMapperService.countActivityBuyNum(vipGroupActivity.getId(), Integer.valueOf(studentIdStr));
|
|
|
- if (useNum >= vipGroupActivity.getStudentMaxUsedTimes()) {
|
|
|
- errStudentIds.add(Integer.valueOf(studentIdStr));
|
|
|
- }
|
|
|
- }
|
|
|
- if (errStudentIds.size() > 0) {
|
|
|
- List<SimpleUserDto> students = teacherDao.getUsersSimpleInfo(errStudentIds);
|
|
|
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- String studentNames = StringUtils.join(students.stream().map(SimpleUserDto::getNickName).collect(Collectors.toList()), "、");
|
|
|
- throw new BizException("该活动{}学员已超过该活动购买次数限制", studentNames);
|
|
|
- }
|
|
|
- }
|
|
|
- //判断课程安排是否超出范围
|
|
|
- if (Objects.nonNull(vipGroupActivity) && (Objects.nonNull(vipGroupActivity.getCoursesEndTime()) || Objects.nonNull(vipGroupActivity.getCoursesStartTime()))) {
|
|
|
- if (latestCourseSchedule.getEndClassTime().after(vipGroupActivity.getCoursesEndTime())
|
|
|
- || firstCourseSchedule.getStartClassTime().before(vipGroupActivity.getCoursesStartTime())) {
|
|
|
- throw new BizException("课时安排时间超出范围!");
|
|
|
- }
|
|
|
- } else {
|
|
|
- VipGroupDefaultClassesCycle vipGroupDefaultClassesCycle = vipGroupDefaultClassesCycleDao.findByOrganAndClassTimes(totalClassTimes, TenantContextHolder.getTenantId());
|
|
|
-
|
|
|
- if (vipGroupDefaultClassesCycle != null) {
|
|
|
- int month = DateUtil.monthsBetween(firstCourseSchedule.getStartClassTime(), latestCourseSchedule.getEndClassTime());
|
|
|
- if (month > vipGroupDefaultClassesCycle.getMonth()) {
|
|
|
- throw new BizException("课时安排时间超出范围!");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if (Objects.nonNull(vipGroupActivity) && Objects.nonNull(vipGroupActivity.getMinCourseNum()) && vipGroupActivity.getMinCourseNum() != -1 && Objects.nonNull(vipGroupActivity.getMaxCourseNum()) && vipGroupActivity.getMaxCourseNum() != -1) {
|
|
|
- Integer requestCourseNum = vipGroupApplyBaseInfoDto.getOnlineClassesNum() + vipGroupApplyBaseInfoDto.getOfflineClassesNum();
|
|
|
- if (requestCourseNum.compareTo(vipGroupActivity.getMinCourseNum()) < 0 || requestCourseNum.compareTo(vipGroupActivity.getMaxCourseNum()) > 0) {
|
|
|
- throw new BizException("该活动课时数为{}节~{}节", vipGroupActivity.getMinCourseNum(), vipGroupActivity.getMaxCourseNum());
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
int repeatVipGroups = vipGroupDao.countUserRepeatVipGroupInCourseStartEndTime(vipGroupApplyBaseInfoDto.getUserId(), firstCourseSchedule.getStartClassTime(), latestCourseSchedule.getEndClassTime());
|
|
|
if (repeatVipGroups > 0) {
|
|
|
throw new BizException("请勿重复提交");
|
|
@@ -442,6 +366,28 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
if (Objects.isNull(vipGroupCategory)) {
|
|
|
throw new BizException("课程形式不存在");
|
|
|
}
|
|
|
+
|
|
|
+ // VIP课,LIVE课参数校验
|
|
|
+ String groupType = vipGroup.getVipGroupApplyBaseInfo().getGroupType();
|
|
|
+
|
|
|
+ // 购买学生列表
|
|
|
+ List<Integer> canBuyStudentIds = Lists.newArrayList();
|
|
|
+ if (StringUtils.isNotBlank(vipGroupApplyBaseInfoDto.getStudentIdList())) {
|
|
|
+ canBuyStudentIds = Arrays.stream(vipGroupApplyBaseInfoDto.getStudentIdList().split(",")).map(Integer::valueOf).collect(Collectors.toList());
|
|
|
+ }
|
|
|
+ List<VipGroupStudentCoursePrice> vscps = vipGroup.getVipGroupApplyBaseInfo().getVipGroupStudentCoursePrices();
|
|
|
+
|
|
|
+
|
|
|
+ // VIP课参数校验
|
|
|
+ if (CourseSchedule.CourseScheduleType.VIP.getCode().equals(groupType)) {
|
|
|
+ vipGroupRequestParamValid(vipGroup, vipGroupApplyBaseInfoDto, totalClassTimes, firstCourseSchedule, latestCourseSchedule);
|
|
|
+ }
|
|
|
+
|
|
|
+ // LIVE课参数校验
|
|
|
+ if (CourseSchedule.CourseScheduleType.LIVE.getCode().equals(groupType)) {
|
|
|
+ // TODO: 2020/3/18 LIVE课参数校验
|
|
|
+ }
|
|
|
+
|
|
|
List<String> studentNames = studentDao.getStudentNames(canBuyStudentIds);
|
|
|
|
|
|
//生成vip课信息
|
|
@@ -486,8 +432,11 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
vipGroupApplyBaseInfoDto.setAuditStatus(AuditStatusEnum.PASS);
|
|
|
}
|
|
|
|
|
|
- vscps.forEach(e -> e.setVipGroupId(vipGroupApplyBaseInfoDto.getId()));
|
|
|
- vipGroupStudentCoursePriceDao.batchInsert(vscps);
|
|
|
+ // 指定学员购买
|
|
|
+ if (org.apache.commons.collections.CollectionUtils.isNotEmpty(vscps)) {
|
|
|
+ vscps.forEach(e -> e.setVipGroupId(vipGroupApplyBaseInfoDto.getId()));
|
|
|
+ vipGroupStudentCoursePriceDao.batchInsert(vscps);
|
|
|
+ }
|
|
|
|
|
|
vipGroup.getVipGroupApplyBaseInfo().setId(vipGroupApplyBaseInfoDto.getId());
|
|
|
|
|
@@ -503,9 +452,9 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
classGroup.setStudentNum(0);
|
|
|
classGroup.setName(vipGroupApplyBaseInfoDto.getName());
|
|
|
classGroup.setTotalClassTimes(totalClassTimes);
|
|
|
- classGroup.setType(ClassGroupTypeEnum.VIP);
|
|
|
+ classGroup.setType(ClassGroupTypeEnum.valueOf(groupType));
|
|
|
classGroup.setDelFlag(1);
|
|
|
- classGroup.setGroupType(GroupType.VIP);
|
|
|
+ classGroup.setGroupType(GroupType.valueOf(groupType));
|
|
|
classGroup.setMusicGroupId(vipGroupApplyBaseInfoDto.getId().toString());
|
|
|
classGroup.setCreateTime(now);
|
|
|
classGroup.setUpdateTime(now);
|
|
@@ -517,7 +466,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
classGroupTeacherMapper.setClassGroupId(classGroup.getId());
|
|
|
classGroupTeacherMapper.setTeacherRole(TeachTypeEnum.BISHOP);
|
|
|
classGroupTeacherMapper.setUserId(vipGroupApplyBaseInfoDto.getUserId());
|
|
|
- classGroupTeacherMapper.setGroupType(GroupType.VIP);
|
|
|
+ classGroupTeacherMapper.setGroupType(GroupType.valueOf(groupType));
|
|
|
classGroupTeacherMapper.setCreateTime(now);
|
|
|
classGroupTeacherMapper.setUpdateTime(now);
|
|
|
classGroupTeacherMapperDao.insert(classGroupTeacherMapper);
|
|
@@ -530,7 +479,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
classGroupTeacherSalary.setUserId(vipGroupApplyBaseInfoDto.getUserId());
|
|
|
classGroupTeacherSalary.setSalary(vipGroupApplyBaseInfoDto.getOfflineTeacherSalary());
|
|
|
classGroupTeacherSalary.setOnlineClassesSalary(vipGroupApplyBaseInfoDto.getOfflineTeacherSalary());
|
|
|
- classGroupTeacherSalary.setGroupType(GroupType.VIP);
|
|
|
+ classGroupTeacherSalary.setGroupType(GroupType.valueOf(groupType));
|
|
|
classGroupTeacherSalary.setCreateTime(now);
|
|
|
classGroupTeacherSalary.setUpdateTime(now);
|
|
|
classGroupTeacherSalaryDao.insert(classGroupTeacherSalary);
|
|
@@ -538,7 +487,7 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
//课程信息调整
|
|
|
List<CourseSchedule> courseSchedules = vipGroup.getCourseSchedules();
|
|
|
courseSchedules.forEach(courseSchedule -> {
|
|
|
- courseSchedule.setGroupType(GroupType.VIP);
|
|
|
+ courseSchedule.setGroupType(GroupType.valueOf(groupType));
|
|
|
courseSchedule.setMusicGroupId(vipGroupApplyBaseInfoDto.getId().toString());
|
|
|
if (courseSchedule.getTeachMode().equals(TeachModeEnum.OFFLINE)) {
|
|
|
courseSchedule.setSchoolId(vipGroup.getVipGroupApplyBaseInfo().getTeacherSchoolId());
|
|
@@ -546,17 +495,108 @@ public class VipGroupServiceImpl extends BaseServiceImpl<Long, VipGroup> impleme
|
|
|
courseSchedule.setTeacherId(vipGroupApplyBaseInfoDto.getUserId());
|
|
|
courseSchedule.setActualTeacherId(vipGroupApplyBaseInfoDto.getUserId());
|
|
|
courseSchedule.setStatus(CourseStatusEnum.NOT_START);
|
|
|
- courseSchedule.setType(CourseSchedule.CourseScheduleType.VIP);
|
|
|
+ courseSchedule.setType(CourseSchedule.CourseScheduleType.valueOf(groupType));
|
|
|
courseSchedule.setClassGroupId(classGroup.getId());
|
|
|
courseSchedule.setName(vipGroupApplyBaseInfoDto.getName());
|
|
|
courseSchedule.setOrganId(vipGroupApplyBaseInfoDto.getOrganId());
|
|
|
});
|
|
|
+
|
|
|
courseScheduleService.checkNewCourseSchedules(courseSchedules, false, false);
|
|
|
vipGroupApplyBaseInfoDto.setCourseSchedulesJson(JSON.toJSONString(courseSchedules));
|
|
|
vipGroupDao.update(vipGroupApplyBaseInfoDto);
|
|
|
return BaseController.succeed(vipGroupApplyBaseInfoDto.getAuditStatus().getCode());
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * VIP课参数校验
|
|
|
+ * @param vipGroup VipGroupApplyDto
|
|
|
+ * @param vipGroupApplyBaseInfoDto VipGroupApplyBaseInfoDto
|
|
|
+ * @param totalClassTimes Integer
|
|
|
+ * @param firstCourseSchedule CourseSchedule
|
|
|
+ * @param latestCourseSchedule CourseSchedule
|
|
|
+ */
|
|
|
+ private void vipGroupRequestParamValid(VipGroupApplyDto vipGroup,
|
|
|
+ VipGroupApplyBaseInfoDto vipGroupApplyBaseInfoDto,
|
|
|
+ Integer totalClassTimes,
|
|
|
+ CourseSchedule firstCourseSchedule,
|
|
|
+ CourseSchedule latestCourseSchedule) {
|
|
|
+
|
|
|
+ Map<TeachModeEnum, List<CourseSchedule>> courseScheduleGroup;
|
|
|
+ try {
|
|
|
+ courseScheduleGroup = vipGroup.getCourseSchedules().stream().collect(Collectors.groupingBy(CourseSchedule::getTeachMode));
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new BizException("教学模式错误");
|
|
|
+ }
|
|
|
+
|
|
|
+ if ((Objects.isNull(courseScheduleGroup.get(TeachModeEnum.OFFLINE)) && vipGroup.getVipGroupApplyBaseInfo().getOfflineClassesNum() != 0)
|
|
|
+ || (!Objects.isNull(courseScheduleGroup.get(TeachModeEnum.OFFLINE)) && (courseScheduleGroup.get(TeachModeEnum.OFFLINE).size() < vipGroup.getVipGroupApplyBaseInfo().getOfflineClassesNum()))) {
|
|
|
+ throw new BizException("线下课课时数量安排有误");
|
|
|
+ }
|
|
|
+
|
|
|
+ if ((Objects.isNull(courseScheduleGroup.get(TeachModeEnum.ONLINE)) && vipGroup.getVipGroupApplyBaseInfo().getOnlineClassesNum() != 0)
|
|
|
+ || (!Objects.isNull(courseScheduleGroup.get(TeachModeEnum.ONLINE)) && (courseScheduleGroup.get(TeachModeEnum.ONLINE).size() < vipGroup.getVipGroupApplyBaseInfo().getOnlineClassesNum()))) {
|
|
|
+ throw new BizException("线上课课时数量安排有误");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (vipGroup.getVipGroupApplyBaseInfo().getOfflineClassesNum() > 0
|
|
|
+ && Objects.isNull(vipGroup.getVipGroupApplyBaseInfo().getTeacherSchoolId())) {
|
|
|
+ throw new BizException("请设置教学点");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(vipGroupApplyBaseInfoDto.getStudentIdList())) {
|
|
|
+ throw new BizException("请选择学员");
|
|
|
+ }
|
|
|
+ //校验机构可排线上课人数上线
|
|
|
+ if (vipGroup.getVipGroupApplyBaseInfo().getOnlineClassesNum() > 0) {
|
|
|
+ courseScheduleService.checkOnlineCategory(vipGroupApplyBaseInfoDto.getStudentNum());
|
|
|
+ }
|
|
|
+
|
|
|
+ //获取活动信息
|
|
|
+ VipGroupActivity vipGroupActivity = vipGroupActivityDao.get(vipGroup.getVipGroupApplyBaseInfo().getVipGroupActivityId());
|
|
|
+ if (!vipGroup.getAllowOverstepActivityStudentNum() && Objects.nonNull(vipGroupActivity)
|
|
|
+ && Objects.nonNull(vipGroupActivity.getStudentMaxUsedTimes()) && vipGroupActivity.getStudentMaxUsedTimes() != -1 &&
|
|
|
+
|
|
|
+ StringUtils.isNotBlank(vipGroupApplyBaseInfoDto.getStudentIdList())) {
|
|
|
+ List<String> tempStudentIds = Arrays.asList(vipGroupApplyBaseInfoDto.getStudentIdList().split(","));
|
|
|
+ List<Integer> errStudentIds = new ArrayList<>();
|
|
|
+ for (String studentIdStr : tempStudentIds) {
|
|
|
+ int useNum = activityUserMapperService.countActivityBuyNum(vipGroupActivity.getId(), Integer.valueOf(studentIdStr));
|
|
|
+ if (useNum >= vipGroupActivity.getStudentMaxUsedTimes()) {
|
|
|
+ errStudentIds.add(Integer.valueOf(studentIdStr));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (errStudentIds.size() > 0) {
|
|
|
+ List<SimpleUserDto> students = teacherDao.getUsersSimpleInfo(errStudentIds);
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ String studentNames = StringUtils.join(students.stream().map(SimpleUserDto::getNickName).collect(Collectors.toList()), "、");
|
|
|
+ throw new BizException("该活动{}学员已超过该活动购买次数限制", studentNames);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //判断课程安排是否超出范围
|
|
|
+ if (Objects.nonNull(vipGroupActivity) && (Objects.nonNull(vipGroupActivity.getCoursesEndTime()) || Objects.nonNull(vipGroupActivity.getCoursesStartTime()))) {
|
|
|
+ if (latestCourseSchedule.getEndClassTime().after(vipGroupActivity.getCoursesEndTime())
|
|
|
+ || firstCourseSchedule.getStartClassTime().before(vipGroupActivity.getCoursesStartTime())) {
|
|
|
+ throw new BizException("课时安排时间超出范围!");
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ VipGroupDefaultClassesCycle vipGroupDefaultClassesCycle = vipGroupDefaultClassesCycleDao.findByOrganAndClassTimes(totalClassTimes, TenantContextHolder.getTenantId());
|
|
|
+
|
|
|
+ if (vipGroupDefaultClassesCycle != null) {
|
|
|
+ int month = DateUtil.monthsBetween(firstCourseSchedule.getStartClassTime(), latestCourseSchedule.getEndClassTime());
|
|
|
+ if (month > vipGroupDefaultClassesCycle.getMonth()) {
|
|
|
+ throw new BizException("课时安排时间超出范围!");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (Objects.nonNull(vipGroupActivity) && Objects.nonNull(vipGroupActivity.getMinCourseNum()) && vipGroupActivity.getMinCourseNum() != -1 && Objects.nonNull(vipGroupActivity.getMaxCourseNum()) && vipGroupActivity.getMaxCourseNum() != -1) {
|
|
|
+ Integer requestCourseNum = vipGroupApplyBaseInfoDto.getOnlineClassesNum() + vipGroupApplyBaseInfoDto.getOfflineClassesNum();
|
|
|
+ if (requestCourseNum.compareTo(vipGroupActivity.getMinCourseNum()) < 0 || requestCourseNum.compareTo(vipGroupActivity.getMaxCourseNum()) > 0) {
|
|
|
+ throw new BizException("该活动课时数为{}节~{}节", vipGroupActivity.getMinCourseNum(), vipGroupActivity.getMaxCourseNum());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Transactional(rollbackFor = Exception.class, isolation = Isolation.READ_COMMITTED)
|
|
|
@Override
|
|
|
public HttpResponseResult createVipGroup1(VipGroupApplyDto vipGroup) {
|