shangke 2 лет назад
Родитель
Сommit
1da77ddc16

+ 12 - 4
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/ClassGroupTypeEnum.java

@@ -6,10 +6,18 @@ import com.ym.mec.common.enums.BaseEnum;
  * 班级类型
  */
 public enum ClassGroupTypeEnum implements BaseEnum<String, ClassGroupTypeEnum> {
-	NORMAL("NORMAL", "声部班"), MIX("MIX", "合奏班"), HIGH("HIGH", "基础技能班"),
-	VIP("VIP", "vip课"), DEMO("DEMO", "试听课"), PRACTICE("PRACTICE", "网管课"), SNAP("SNAP",
-			"临时班"), COMM("COMM", "对外课程"), HIGH_ONLINE("HIGH_ONLINE", "线上基础技能班"),
-	MUSIC_NETWORK("MUSIC_NETWORK","乐团网管课");
+	NORMAL("NORMAL", "声部班"),
+	MIX("MIX", "合奏班"),
+	HIGH("HIGH", "基础技能班"),
+	VIP("VIP", "vip课"),
+	DEMO("DEMO", "试听课"),
+	PRACTICE("PRACTICE", "网管课"),
+	SNAP("SNAP", "临时班"),
+	COMM("COMM", "对外课程"),
+	HIGH_ONLINE("HIGH_ONLINE", "线上基础技能班"),
+	MUSIC_NETWORK("MUSIC_NETWORK","乐团网管课"),
+	LIVE("LIVE","直播课"),
+	;
 
 	private String code;
 

+ 3 - 1
mec-biz/src/main/java/com/ym/mec/biz/dal/enums/GroupType.java

@@ -20,7 +20,9 @@ public enum GroupType implements BaseEnum<String, GroupType> {
 	MEMBER("购买会员"),
 	LIVE_BUY("直播购物"),
 
-	MALL_SELL("商城购物"),;
+	MALL_SELL("商城购物"),
+	LIVE("直播课"),
+	;
 
 	private String desc;
 

+ 130 - 90
mec-biz/src/main/java/com/ym/mec/biz/service/impl/VipGroupServiceImpl.java

@@ -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) {

+ 17 - 6
mec-web/src/main/java/com/ym/mec/web/controller/VipGroupManageController.java

@@ -143,14 +143,25 @@ public class VipGroupManageController extends BaseController {
         if(Objects.isNull(teacher)){
             return failed("请指定指导老师!");
         }
-        if(Objects.isNull(vipGroupApplyDto.getVipGroupApplyBaseInfo().getOrganId())){
-            Integer firstStudentId = vipGroupApplyDto.getVipGroupApplyBaseInfo().getFirstStudentId();
-            SysUser student = teacherDao.getUser(firstStudentId);
-            if(Objects.isNull(student)||Objects.isNull(student.getOrganId())){
-                return failed("学员信息异常");
+
+        // 设置默认参数VIP
+        if (StringUtils.isBlank(vipGroupApplyDto.getVipGroupApplyBaseInfo().getGroupType())) {
+            vipGroupApplyDto.getVipGroupApplyBaseInfo().setGroupType(CourseSchedule.CourseScheduleType.VIP.getCode());
+        }
+
+        // VIP课参数校验
+        if (CourseSchedule.CourseScheduleType.VIP.getCode().equals(vipGroupApplyDto.getVipGroupApplyBaseInfo().getGroupType())) {
+
+            if(Objects.isNull(vipGroupApplyDto.getVipGroupApplyBaseInfo().getOrganId())){
+                Integer firstStudentId = vipGroupApplyDto.getVipGroupApplyBaseInfo().getFirstStudentId();
+                SysUser student = teacherDao.getUser(firstStudentId);
+                if(Objects.isNull(student)||Objects.isNull(student.getOrganId())){
+                    return failed("学员信息异常");
+                }
+                vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganId(student.getOrganId());
             }
-            vipGroupApplyDto.getVipGroupApplyBaseInfo().setOrganId(student.getOrganId());
         }
+
         return vipGroupService.createVipGroup(vipGroupApplyDto);
     }