From 049ee306113c63662e390919c631a5eb53018139 Mon Sep 17 00:00:00 2001 From: GoCo Date: Fri, 22 Aug 2025 11:02:57 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20=E6=96=B0=E5=BB=BA?= =?UTF-8?q?=E9=A2=98=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/biz/constant/EntityLinkConst.java | 2 + .../biz/controller/RepoBizController.java | 65 +++++++++++++++++++ .../biz/service/EntityLinkBizService.java | 9 +++ .../impl/EntityLinkBizServiceImpl.java | 10 +++ 4 files changed, 86 insertions(+) create mode 100644 jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/controller/RepoBizController.java diff --git a/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/constant/EntityLinkConst.java b/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/constant/EntityLinkConst.java index 1bf7f462..a70d8f5f 100644 --- a/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/constant/EntityLinkConst.java +++ b/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/constant/EntityLinkConst.java @@ -35,6 +35,8 @@ public final class EntityLinkConst { public static final String EXAM = "exam"; // 课程 public static final String COURSE = "course"; + // 题库 + public static final String REPO = "repo"; } /** 资源类型 0:视频,1:图片,2:文档 */ diff --git a/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/controller/RepoBizController.java b/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/controller/RepoBizController.java new file mode 100644 index 00000000..0b3f98fa --- /dev/null +++ b/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/controller/RepoBizController.java @@ -0,0 +1,65 @@ +package org.jeecg.modules.biz.controller; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import lombok.extern.slf4j.Slf4j; +import org.springframework.web.bind.annotation.*; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import javax.transaction.Transactional; + +import org.jeecg.common.api.vo.Result; +import org.jeecg.modules.biz.constant.EntityLinkConst; +import org.jeecg.modules.biz.service.EntityLinkBizService; +import org.jeecg.modules.gen.repo.entity.Repo; +import org.jeecg.modules.gen.repo.mapper.RepoMapper; + +@RestController +@RequestMapping("/biz/repo") +@Tag(name = "题库") +@Slf4j +public class RepoBizController { + + @Autowired + private RepoMapper repoMapper; + @Autowired + private EntityLinkBizService entityLinkBizService; + + @PostMapping("course_add") + @Operation(summary = "获取课程下的题库") + @Transactional + public Result correct(@RequestBody Map data) { + String title = (String) data.get("title"); + String remark = (String) data.get("remark"); + String courseId = (String) data.get("courseId"); + + Repo repo = new Repo(); + repo.setTitle(title); + repo.setRemark(remark); + + repoMapper.insert(repo); + entityLinkBizService.save(EntityLinkConst.SourceType.COURSE, courseId, EntityLinkConst.TargetType.REPO, repo.getId()); + + return Result.OK(repo.getId()); + } + + @GetMapping("course_list") + @Operation(summary = "获取课程下的题库") + public Result> courseList(@RequestParam String courseId) { + List targetIds = entityLinkBizService.listTargetIds(EntityLinkConst.SourceType.COURSE, courseId, EntityLinkConst.TargetType.REPO); + + if (targetIds.size() > 0) { + List list = repoMapper.selectByIds(targetIds); + return Result.OK(list); + } else { + return Result.OK(new ArrayList<>()); + } + } + +} diff --git a/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/service/EntityLinkBizService.java b/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/service/EntityLinkBizService.java index 0321433e..b38d5f86 100644 --- a/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/service/EntityLinkBizService.java +++ b/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/service/EntityLinkBizService.java @@ -14,4 +14,13 @@ public interface EntityLinkBizService extends IService{ * @return target_id 列表(去重) */ List listTargetIds(String sourceType, String sourceId, String targetType); + + /** + * 保存主体与内容类型的绑定关系 + * @param sourceType 主体类型 + * @param sourceId 主体ID + * @param targetType 内容类型 + * @param targetId 内容ID + */ + void save(String sourceType, String sourceId, String targetType, String targetId); } diff --git a/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/service/impl/EntityLinkBizServiceImpl.java b/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/service/impl/EntityLinkBizServiceImpl.java index 7f3a1906..29595da8 100644 --- a/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/service/impl/EntityLinkBizServiceImpl.java +++ b/jeecg-boot/jeecg-boot-module/jeecg-module-learn/src/main/java/org/jeecg/modules/biz/service/impl/EntityLinkBizServiceImpl.java @@ -23,4 +23,14 @@ public class EntityLinkBizServiceImpl extends ServiceImpl