From 3d9fda6230fe09d4000d8e9d361474a3b337e1ee Mon Sep 17 00:00:00 2001 From: GoCo Date: Mon, 18 Aug 2025 17:32:52 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=9C=E4=B8=9A+=E6=96=87=E6=A1=A3=E7=AB=A0?= =?UTF-8?q?=E8=8A=82=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../biz/controller/CourseBizController.java | 21 ++++++++++++- .../biz/controller/HomeworkBizController.java | 31 +++++++++++++++++++ .../biz/service/IHomeworkBizService.java | 18 +++++++++++ .../service/impl/CourseBizServiceImpl.java | 8 ++++- .../service/impl/HomeworkBizServiceImpl.java | 30 ++++++++++++++++++ 5 files changed, 106 insertions(+), 2 deletions(-) create mode 100644 jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/controller/HomeworkBizController.java create mode 100644 jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/service/IHomeworkBizService.java create mode 100644 jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/service/impl/HomeworkBizServiceImpl.java diff --git a/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/controller/CourseBizController.java b/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/controller/CourseBizController.java index bc24d465..a1caa99b 100644 --- a/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/controller/CourseBizController.java +++ b/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/controller/CourseBizController.java @@ -23,6 +23,7 @@ import org.jeecg.modules.biz.service.CourseBizService; import org.jeecg.modules.gen.course.entity.Course; import org.jeecg.modules.gen.coursecategory.entity.CourseCategory; import org.jeecg.modules.gen.coursesection.entity.CourseSection; +import org.jeecg.modules.gen.homework.entity.Homework; import org.jeecg.modules.gen.resource.entity.Resource; import java.util.List; @@ -106,12 +107,30 @@ public class CourseBizController { @GetMapping("/{courseId}/section_video/{sectionId}") @Operation(summary = "查询视频章节详情", description = "该接口需要携带用户登录token。根据章节id查询章节详情,不同类型的章节,返回的内容不同") public Result> querySectionDetail(@PathVariable(value = "courseId") String courseId, @PathVariable(value = "sectionId") String sectionId) { - // TODO 获取用户id,根据courseId判断当前用户是否报名课程,只有已报名的课程才能查看章节详情 + // TODO GC 获取用户id,根据courseId判断当前用户是否报名课程,只有已报名的课程才能查看章节详情 List list = courseBizService.getCourseSectionDetail(0, sectionId, Resource.class); return Result.OK(list); } + @GetMapping("/{courseId}/section_document/{sectionId}") + @Operation(summary = "查询文档章节详情", description = "该接口需要携带用户登录token。根据章节id查询章节详情,不同类型的章节,返回的内容不同") + public Result> querySectionDocumentDetail(@PathVariable(value = "courseId") String courseId, @PathVariable(value = "sectionId") String sectionId) { + // TODO GC 获取用户id,根据courseId判断当前用户是否报名课程,只有已报名的课程才能查看章节详情 + + List list = courseBizService.getCourseSectionDetail(1, sectionId, Resource.class); + return Result.OK(list); + } + + @GetMapping("/{courseId}/section_homework/{sectionId}") + @Operation(summary = "查询作业章节详情", description = "该接口需要携带用户登录token。根据章节id查询章节详情,不同类型的章节,返回的内容不同") + public Result> querySectionHomeworkDetail(@PathVariable(value = "courseId") String courseId, @PathVariable(value = "sectionId") String sectionId) { + // TODO GC 获取用户id,根据courseId判断当前用户是否报名课程,只有已报名的课程才能查看章节详情 + + List list = courseBizService.getCourseSectionDetail(3, sectionId, Homework.class); + return Result.OK(list); + } + @GetMapping("/{courseId}/teachers") @Operation(summary = "查询课程的授课教师") @IgnoreAuth diff --git a/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/controller/HomeworkBizController.java b/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/controller/HomeworkBizController.java new file mode 100644 index 00000000..54fccb8a --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/controller/HomeworkBizController.java @@ -0,0 +1,31 @@ +package org.jeecg.modules.biz.controller; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; +import io.swagger.v3.oas.annotations.tags.Tag; +import io.swagger.v3.oas.annotations.Operation; +import lombok.extern.slf4j.Slf4j; +import org.jeecg.common.api.vo.Result; +import java.util.List; + +import org.jeecg.modules.biz.service.IHomeworkBizService; +import org.jeecg.modules.gen.homework.entity.Homework; + +@RestController +@RequestMapping("/biz/homework") +@Tag(name = "作业") +@Slf4j +public class HomeworkBizController { + + @Autowired + private IHomeworkBizService homeworkBizService; + + @GetMapping("/course/{courseId}") + @Operation(summary = "查询课程作业") + public Result> list(@PathVariable String courseId) { + return Result.OK(homeworkBizService.listByCourseId(courseId)); + } +} diff --git a/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/service/IHomeworkBizService.java b/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/service/IHomeworkBizService.java new file mode 100644 index 00000000..02345dae --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/service/IHomeworkBizService.java @@ -0,0 +1,18 @@ +package org.jeecg.modules.biz.service; + +import java.util.List; + +import org.jeecg.modules.gen.homework.entity.Homework; + +import com.baomidou.mybatisplus.extension.service.IService; + +public interface IHomeworkBizService extends IService { + + /** + * 查询某课程章节下的作业 + * @param courseId + * @return + */ + List listByCourseId(String courseId); + +} diff --git a/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/service/impl/CourseBizServiceImpl.java b/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/service/impl/CourseBizServiceImpl.java index d002e8cf..a71da949 100644 --- a/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/service/impl/CourseBizServiceImpl.java +++ b/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/service/impl/CourseBizServiceImpl.java @@ -18,6 +18,7 @@ import org.jeecg.modules.gen.coursesection.entity.CourseSection; import org.jeecg.modules.gen.coursesection.mapper.CourseSectionMapper; import org.jeecg.modules.gen.courseteacher.entity.CourseTeacher; import org.jeecg.modules.gen.courseteacher.mapper.CourseTeacherMapper; +import org.jeecg.modules.gen.homework.mapper.HomeworkMapper; import org.jeecg.modules.gen.resource.mapper.ResourceMapper; import org.jeecg.modules.gen.userinfo.entity.UserInfo; import org.jeecg.modules.gen.userinfo.mapper.UserInfoMapper; @@ -69,6 +70,9 @@ public class CourseBizServiceImpl extends ServiceImpl impl @Autowired private SysUserMapper sysUserMapper; + @Autowired + private HomeworkMapper homeworkMapper; + @Override public List getCourseSectionDetail(Integer type, String sectionId, Class clazz) { // 1. 查询章节是否存在 @@ -108,6 +112,7 @@ public class CourseBizServiceImpl extends ServiceImpl impl default: break; } + List targetIds = entityLinkBizService.listTargetIds(sourceType, sourceId, targetType); if (targetIds.isEmpty()) { throw new RuntimeException("章节没有关联的实体"); @@ -129,7 +134,8 @@ public class CourseBizServiceImpl extends ServiceImpl impl // TODO 考试章节 break; case 3: - // TODO 作业章节 + // 作业章节 + result.add(clazz.cast(homeworkMapper.selectById(targetId))); break; } } diff --git a/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/service/impl/HomeworkBizServiceImpl.java b/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/service/impl/HomeworkBizServiceImpl.java new file mode 100644 index 00000000..487796ba --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/service/impl/HomeworkBizServiceImpl.java @@ -0,0 +1,30 @@ +package org.jeecg.modules.biz.service.impl; + +import org.jeecg.modules.biz.constant.EntityLinkConst; +import org.jeecg.modules.biz.service.EntityLinkBizService; +import org.jeecg.modules.biz.service.IHomeworkBizService; +import org.jeecg.modules.gen.homework.entity.Homework; +import org.jeecg.modules.gen.homework.mapper.HomeworkMapper; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import lombok.extern.slf4j.Slf4j; +import java.util.List; + + +@Slf4j +@Service +public class HomeworkBizServiceImpl extends ServiceImpl implements IHomeworkBizService { + + @Autowired + private EntityLinkBizService entityLinkBizService; + + @Override + public List listByCourseId(String courseId) { + List homeworkIds = entityLinkBizService.listTargetIds(EntityLinkConst.SourceType.COURSE, courseId, EntityLinkConst.TargetType.HOMEWORK); + return this.listByIds(homeworkIds); + } + +}