feat: 🎸 注册接口报错修复 & 考试练习讨论章节
This commit is contained in:
parent
341dab35d0
commit
1ea941a4d1
@ -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;
|
||||||
|
}
|
@ -28,6 +28,7 @@ import org.jeecg.modules.aiol.service.IAiolClassService;
|
|||||||
import org.jeecg.modules.aiol.service.IAiolEntityPermissionService;
|
import org.jeecg.modules.aiol.service.IAiolEntityPermissionService;
|
||||||
import org.jeecg.modules.aiol.service.IAiolEntityLinkService;
|
import org.jeecg.modules.aiol.service.IAiolEntityLinkService;
|
||||||
import org.jeecg.modules.aiol.constant.EntityPermissionConst;
|
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.constant.EntityLinkConst;
|
||||||
import org.jeecg.modules.aiol.mapper.AiolCourseSignupMapper;
|
import org.jeecg.modules.aiol.mapper.AiolCourseSignupMapper;
|
||||||
import org.jeecg.modules.aiol.mapper.AiolCourseTeacherMapper;
|
import org.jeecg.modules.aiol.mapper.AiolCourseTeacherMapper;
|
||||||
@ -471,32 +472,50 @@ public class AiolCourseController extends JeecgController<AiolCourse, IAiolCours
|
|||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/{courseId}/section_video/{sectionId}")
|
@GetMapping("/{courseId}/section_video/{sectionId}")
|
||||||
@Operation(summary = "查询视频章节详情", description = "该接口需要携带用户登录token。根据章节id查询章节详情,不同类型的章节,返回的内容不同")
|
@Operation(summary = "查询视频章节的关联对象详情", description = "该接口需要携带用户登录token。根据章节id查询章节详情,不同类型的章节,返回的内容不同")
|
||||||
public Result<List<AiolResource>> querySectionDetail(@PathVariable(value = "courseId") String courseId,
|
public Result<List<AiolResource>> querySectionDetail(@PathVariable(value = "courseId") String courseId,
|
||||||
@PathVariable(value = "sectionId") String sectionId) {
|
@PathVariable(value = "sectionId") String sectionId) {
|
||||||
// TODO GC 获取用户id,根据courseId判断当前用户是否报名课程,只有已报名的课程才能查看章节详情
|
List<AiolResource> list = aiolCourseService.getCourseSectionDetail(CourseSectionTypeConst.VIDEO, sectionId, AiolResource.class);
|
||||||
|
|
||||||
List<AiolResource> list = aiolCourseService.getCourseSectionDetail(0, sectionId, AiolResource.class);
|
|
||||||
return Result.OK(list);
|
return Result.OK(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/{courseId}/section_document/{sectionId}")
|
@GetMapping("/{courseId}/section_document/{sectionId}")
|
||||||
@Operation(summary = "查询文档章节详情", description = "该接口需要携带用户登录token。根据章节id查询章节详情,不同类型的章节,返回的内容不同")
|
@Operation(summary = "查询文档章节的关联对象详情", description = "该接口需要携带用户登录token。根据章节id查询章节详情,不同类型的章节,返回的内容不同")
|
||||||
public Result<List<AiolResource>> querySectionDocumentDetail(@PathVariable(value = "courseId") String courseId,
|
public Result<List<AiolResource>> querySectionDocumentDetail(@PathVariable(value = "courseId") String courseId,
|
||||||
@PathVariable(value = "sectionId") String sectionId) {
|
@PathVariable(value = "sectionId") String sectionId) {
|
||||||
// TODO GC 获取用户id,根据courseId判断当前用户是否报名课程,只有已报名的课程才能查看章节详情
|
List<AiolResource> list = aiolCourseService.getCourseSectionDetail(CourseSectionTypeConst.DOCUMENT, sectionId, AiolResource.class);
|
||||||
|
return Result.OK(list);
|
||||||
|
}
|
||||||
|
|
||||||
List<AiolResource> list = aiolCourseService.getCourseSectionDetail(1, sectionId, AiolResource.class);
|
@GetMapping("/{courseId}/section_exam/{sectionId}")
|
||||||
|
@Operation(summary = "查询考试章节的关联对象详情", description = "该接口需要携带用户登录token。根据章节id查询章节详情,不同类型的章节,返回的内容不同")
|
||||||
|
public Result<List<AiolExam>> querySectionExamDetail(@PathVariable(value = "courseId") String courseId,
|
||||||
|
@PathVariable(value = "sectionId") String sectionId) {
|
||||||
|
List<AiolExam> list = aiolCourseService.getCourseSectionDetail(CourseSectionTypeConst.EXAM, sectionId, AiolExam.class);
|
||||||
return Result.OK(list);
|
return Result.OK(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/{courseId}/section_homework/{sectionId}")
|
@GetMapping("/{courseId}/section_homework/{sectionId}")
|
||||||
@Operation(summary = "查询作业章节详情", description = "该接口需要携带用户登录token。根据章节id查询章节详情,不同类型的章节,返回的内容不同")
|
@Operation(summary = "查询作业章节的关联对象详情", description = "该接口需要携带用户登录token。根据章节id查询章节详情,不同类型的章节,返回的内容不同")
|
||||||
public Result<List<AiolHomework>> querySectionHomeworkDetail(@PathVariable(value = "courseId") String courseId,
|
public Result<List<AiolHomework>> querySectionHomeworkDetail(@PathVariable(value = "courseId") String courseId,
|
||||||
@PathVariable(value = "sectionId") String sectionId) {
|
@PathVariable(value = "sectionId") String sectionId) {
|
||||||
// TODO GC 获取用户id,根据courseId判断当前用户是否报名课程,只有已报名的课程才能查看章节详情
|
List<AiolHomework> list = aiolCourseService.getCourseSectionDetail(CourseSectionTypeConst.HOMEWORK, sectionId, AiolHomework.class);
|
||||||
|
return Result.OK(list);
|
||||||
|
}
|
||||||
|
|
||||||
List<AiolHomework> list = aiolCourseService.getCourseSectionDetail(3, sectionId, AiolHomework.class);
|
@GetMapping("/{courseId}/section_exercise/{sectionId}")
|
||||||
|
@Operation(summary = "查询练习章节的关联对象详情", description = "该接口需要携带用户登录token。根据章节id查询章节详情,不同类型的章节,返回的内容不同")
|
||||||
|
public Result<List<AiolExam>> querySectionExerciseDetail(@PathVariable(value = "courseId") String courseId,
|
||||||
|
@PathVariable(value = "sectionId") String sectionId) {
|
||||||
|
List<AiolExam> list = aiolCourseService.getCourseSectionDetail(CourseSectionTypeConst.EXERCISE, sectionId, AiolExam.class);
|
||||||
|
return Result.OK(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/{courseId}/section_discussion/{sectionId}")
|
||||||
|
@Operation(summary = "查询讨论章节的关联对象详情", description = "该接口需要携带用户登录token。根据章节id查询章节详情,不同类型的章节,返回的内容不同")
|
||||||
|
public Result<List<AiolDiscussion>> querySectionDiscussionDetail(@PathVariable(value = "courseId") String courseId,
|
||||||
|
@PathVariable(value = "sectionId") String sectionId) {
|
||||||
|
List<AiolDiscussion> list = aiolCourseService.getCourseSectionDetail(CourseSectionTypeConst.DISCUSSION, sectionId, AiolDiscussion.class);
|
||||||
return Result.OK(list);
|
return Result.OK(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -236,7 +236,7 @@ public class AiolResourceController extends JeecgController<AiolResource, IAiolR
|
|||||||
|
|
||||||
@PostMapping("/video_upload")
|
@PostMapping("/video_upload")
|
||||||
@Operation(summary = "课程视频文件上传", description = "课程视频文件上传,创建资源记录并关联到课程")
|
@Operation(summary = "课程视频文件上传", description = "课程视频文件上传,创建资源记录并关联到课程")
|
||||||
public Result<Map<String, Object>> upload(
|
public Result<AiolResource> upload(
|
||||||
@RequestParam("file") MultipartFile file,
|
@RequestParam("file") MultipartFile file,
|
||||||
@RequestParam("courseId") String courseId,
|
@RequestParam("courseId") String courseId,
|
||||||
@RequestParam("name") String name,
|
@RequestParam("name") String name,
|
||||||
@ -292,7 +292,7 @@ public class AiolResourceController extends JeecgController<AiolResource, IAiolR
|
|||||||
log.info("视频上传成功: resourceId={}, courseId={}, name={}",
|
log.info("视频上传成功: resourceId={}, courseId={}, name={}",
|
||||||
resource.getId(), courseId, name);
|
resource.getId(), courseId, name);
|
||||||
|
|
||||||
return Result.OK(resource.getId());
|
return Result.OK(resource);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("视频上传失败: courseId={}, name={}, error={}",
|
log.error("视频上传失败: courseId={}, name={}, error={}",
|
||||||
courseId, name, e.getMessage(), e);
|
courseId, name, e.getMessage(), e);
|
||||||
@ -302,7 +302,7 @@ public class AiolResourceController extends JeecgController<AiolResource, IAiolR
|
|||||||
|
|
||||||
@PostMapping("/document_upload")
|
@PostMapping("/document_upload")
|
||||||
@Operation(summary = "课程文档文件上传", description = "上传文档文件并关联到课程,支持word、ppt、excel、pdf、txt、markdown等格式")
|
@Operation(summary = "课程文档文件上传", description = "上传文档文件并关联到课程,支持word、ppt、excel、pdf、txt、markdown等格式")
|
||||||
public Result<String> uploadDocument(
|
public Result<AiolResource> uploadDocument(
|
||||||
@RequestParam("file") MultipartFile file,
|
@RequestParam("file") MultipartFile file,
|
||||||
@RequestParam("courseId") String courseId,
|
@RequestParam("courseId") String courseId,
|
||||||
@RequestParam("name") String name,
|
@RequestParam("name") String name,
|
||||||
@ -359,7 +359,7 @@ public class AiolResourceController extends JeecgController<AiolResource, IAiolR
|
|||||||
log.info("文档上传成功: resourceId={}, courseId={}, name={}",
|
log.info("文档上传成功: resourceId={}, courseId={}, name={}",
|
||||||
resource.getId(), courseId, name);
|
resource.getId(), courseId, name);
|
||||||
|
|
||||||
return Result.OK(resource.getId());
|
return Result.OK(resource);
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("文档上传失败: courseId={}, name={}, error={}",
|
log.error("文档上传失败: courseId={}, name={}, error={}",
|
||||||
@ -370,7 +370,7 @@ public class AiolResourceController extends JeecgController<AiolResource, IAiolR
|
|||||||
|
|
||||||
@PostMapping("/image_upload")
|
@PostMapping("/image_upload")
|
||||||
@Operation(summary = "课程图片文件上传", description = "上传图片文件并关联到课程,支持jpg、jpeg、png、gif、bmp、webp等格式")
|
@Operation(summary = "课程图片文件上传", description = "上传图片文件并关联到课程,支持jpg、jpeg、png、gif、bmp、webp等格式")
|
||||||
public Result<String> uploadImage(
|
public Result<AiolResource> uploadImage(
|
||||||
@RequestParam("file") MultipartFile file,
|
@RequestParam("file") MultipartFile file,
|
||||||
@RequestParam("courseId") String courseId,
|
@RequestParam("courseId") String courseId,
|
||||||
@RequestParam("name") String name,
|
@RequestParam("name") String name,
|
||||||
@ -427,8 +427,7 @@ public class AiolResourceController extends JeecgController<AiolResource, IAiolR
|
|||||||
log.info("图片上传成功: resourceId={}, courseId={}, name={}",
|
log.info("图片上传成功: resourceId={}, courseId={}, name={}",
|
||||||
resource.getId(), courseId, name);
|
resource.getId(), courseId, name);
|
||||||
|
|
||||||
return Result.OK(resource.getId());
|
return Result.OK(resource);
|
||||||
|
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("图片上传失败: courseId={}, name={}, error={}",
|
log.error("图片上传失败: courseId={}, name={}, error={}",
|
||||||
courseId, name, e.getMessage(), e);
|
courseId, name, e.getMessage(), e);
|
||||||
|
@ -298,7 +298,8 @@ public class AiolUserController {
|
|||||||
// 4. 检查邀请码是否对应某个班级
|
// 4. 检查邀请码是否对应某个班级
|
||||||
LambdaQueryWrapper<AiolClass> classQuery = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<AiolClass> classQuery = new LambdaQueryWrapper<>();
|
||||||
classQuery.eq(AiolClass::getInviteCode, inviteCode);
|
classQuery.eq(AiolClass::getInviteCode, inviteCode);
|
||||||
AiolClass targetClass = aiolClassService.getOne(classQuery);
|
// 允许存在重复邀请码时仅取第一条,避免抛出“期望1条结果却查询到多条”的异常
|
||||||
|
AiolClass targetClass = aiolClassService.getOne(classQuery, false);
|
||||||
if (targetClass == null) {
|
if (targetClass == null) {
|
||||||
return result.error500("邀请码无效,请检查邀请码是否正确");
|
return result.error500("邀请码无效,请检查邀请码是否正确");
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user