diff --git a/jeecg-boot/jeecg-boot-module/jeecg-module-aiol/src/main/java/org/jeecg/modules/aiol/constant/CourseSectionTypeConst.java b/jeecg-boot/jeecg-boot-module/jeecg-module-aiol/src/main/java/org/jeecg/modules/aiol/constant/CourseSectionTypeConst.java new file mode 100644 index 00000000..6d3ee73a --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecg-module-aiol/src/main/java/org/jeecg/modules/aiol/constant/CourseSectionTypeConst.java @@ -0,0 +1,10 @@ +package org.jeecg.modules.aiol.constant; + +public class CourseSectionTypeConst { + public static final int VIDEO = 0; + public static final int DOCUMENT = 1; + public static final int EXAM = 2; + public static final int HOMEWORK = 3; + public static final int EXERCISE = 4; + public static final int DISCUSSION = 5; +} diff --git a/jeecg-boot/jeecg-boot-module/jeecg-module-aiol/src/main/java/org/jeecg/modules/aiol/controller/AiolCourseController.java b/jeecg-boot/jeecg-boot-module/jeecg-module-aiol/src/main/java/org/jeecg/modules/aiol/controller/AiolCourseController.java index f5215fc9..c112ed88 100644 --- a/jeecg-boot/jeecg-boot-module/jeecg-module-aiol/src/main/java/org/jeecg/modules/aiol/controller/AiolCourseController.java +++ b/jeecg-boot/jeecg-boot-module/jeecg-module-aiol/src/main/java/org/jeecg/modules/aiol/controller/AiolCourseController.java @@ -28,6 +28,7 @@ import org.jeecg.modules.aiol.service.IAiolClassService; import org.jeecg.modules.aiol.service.IAiolEntityPermissionService; import org.jeecg.modules.aiol.service.IAiolEntityLinkService; import org.jeecg.modules.aiol.constant.EntityPermissionConst; +import org.jeecg.modules.aiol.constant.CourseSectionTypeConst; import org.jeecg.modules.aiol.constant.EntityLinkConst; import org.jeecg.modules.aiol.mapper.AiolCourseSignupMapper; import org.jeecg.modules.aiol.mapper.AiolCourseTeacherMapper; @@ -471,32 +472,50 @@ public class AiolCourseController extends JeecgController> querySectionDetail(@PathVariable(value = "courseId") String courseId, @PathVariable(value = "sectionId") String sectionId) { - // TODO GC 获取用户id,根据courseId判断当前用户是否报名课程,只有已报名的课程才能查看章节详情 - - List list = aiolCourseService.getCourseSectionDetail(0, sectionId, AiolResource.class); + List list = aiolCourseService.getCourseSectionDetail(CourseSectionTypeConst.VIDEO, sectionId, AiolResource.class); return Result.OK(list); } @GetMapping("/{courseId}/section_document/{sectionId}") - @Operation(summary = "查询文档章节详情", description = "该接口需要携带用户登录token。根据章节id查询章节详情,不同类型的章节,返回的内容不同") + @Operation(summary = "查询文档章节的关联对象详情", description = "该接口需要携带用户登录token。根据章节id查询章节详情,不同类型的章节,返回的内容不同") public Result> querySectionDocumentDetail(@PathVariable(value = "courseId") String courseId, @PathVariable(value = "sectionId") String sectionId) { - // TODO GC 获取用户id,根据courseId判断当前用户是否报名课程,只有已报名的课程才能查看章节详情 + List list = aiolCourseService.getCourseSectionDetail(CourseSectionTypeConst.DOCUMENT, sectionId, AiolResource.class); + return Result.OK(list); + } - List list = aiolCourseService.getCourseSectionDetail(1, sectionId, AiolResource.class); + @GetMapping("/{courseId}/section_exam/{sectionId}") + @Operation(summary = "查询考试章节的关联对象详情", description = "该接口需要携带用户登录token。根据章节id查询章节详情,不同类型的章节,返回的内容不同") + public Result> querySectionExamDetail(@PathVariable(value = "courseId") String courseId, + @PathVariable(value = "sectionId") String sectionId) { + List list = aiolCourseService.getCourseSectionDetail(CourseSectionTypeConst.EXAM, sectionId, AiolExam.class); return Result.OK(list); } @GetMapping("/{courseId}/section_homework/{sectionId}") - @Operation(summary = "查询作业章节详情", description = "该接口需要携带用户登录token。根据章节id查询章节详情,不同类型的章节,返回的内容不同") + @Operation(summary = "查询作业章节的关联对象详情", description = "该接口需要携带用户登录token。根据章节id查询章节详情,不同类型的章节,返回的内容不同") public Result> querySectionHomeworkDetail(@PathVariable(value = "courseId") String courseId, @PathVariable(value = "sectionId") String sectionId) { - // TODO GC 获取用户id,根据courseId判断当前用户是否报名课程,只有已报名的课程才能查看章节详情 + List list = aiolCourseService.getCourseSectionDetail(CourseSectionTypeConst.HOMEWORK, sectionId, AiolHomework.class); + return Result.OK(list); + } - List list = aiolCourseService.getCourseSectionDetail(3, sectionId, AiolHomework.class); + @GetMapping("/{courseId}/section_exercise/{sectionId}") + @Operation(summary = "查询练习章节的关联对象详情", description = "该接口需要携带用户登录token。根据章节id查询章节详情,不同类型的章节,返回的内容不同") + public Result> querySectionExerciseDetail(@PathVariable(value = "courseId") String courseId, + @PathVariable(value = "sectionId") String sectionId) { + List list = aiolCourseService.getCourseSectionDetail(CourseSectionTypeConst.EXERCISE, sectionId, AiolExam.class); + return Result.OK(list); + } + + @GetMapping("/{courseId}/section_discussion/{sectionId}") + @Operation(summary = "查询讨论章节的关联对象详情", description = "该接口需要携带用户登录token。根据章节id查询章节详情,不同类型的章节,返回的内容不同") + public Result> querySectionDiscussionDetail(@PathVariable(value = "courseId") String courseId, + @PathVariable(value = "sectionId") String sectionId) { + List list = aiolCourseService.getCourseSectionDetail(CourseSectionTypeConst.DISCUSSION, sectionId, AiolDiscussion.class); return Result.OK(list); } diff --git a/jeecg-boot/jeecg-boot-module/jeecg-module-aiol/src/main/java/org/jeecg/modules/aiol/controller/AiolResourceController.java b/jeecg-boot/jeecg-boot-module/jeecg-module-aiol/src/main/java/org/jeecg/modules/aiol/controller/AiolResourceController.java index 984e5ff5..99830c7b 100644 --- a/jeecg-boot/jeecg-boot-module/jeecg-module-aiol/src/main/java/org/jeecg/modules/aiol/controller/AiolResourceController.java +++ b/jeecg-boot/jeecg-boot-module/jeecg-module-aiol/src/main/java/org/jeecg/modules/aiol/controller/AiolResourceController.java @@ -236,7 +236,7 @@ public class AiolResourceController extends JeecgController> upload( + public Result upload( @RequestParam("file") MultipartFile file, @RequestParam("courseId") String courseId, @RequestParam("name") String name, @@ -292,7 +292,7 @@ public class AiolResourceController extends JeecgController uploadDocument( + public Result uploadDocument( @RequestParam("file") MultipartFile file, @RequestParam("courseId") String courseId, @RequestParam("name") String name, @@ -359,7 +359,7 @@ public class AiolResourceController extends JeecgController uploadImage( + public Result uploadImage( @RequestParam("file") MultipartFile file, @RequestParam("courseId") String courseId, @RequestParam("name") String name, @@ -427,8 +427,7 @@ public class AiolResourceController extends JeecgController classQuery = new LambdaQueryWrapper<>(); classQuery.eq(AiolClass::getInviteCode, inviteCode); - AiolClass targetClass = aiolClassService.getOne(classQuery); + // 允许存在重复邀请码时仅取第一条,避免抛出“期望1条结果却查询到多条”的异常 + AiolClass targetClass = aiolClassService.getOne(classQuery, false); if (targetClass == null) { return result.error500("邀请码无效,请检查邀请码是否正确"); }