Browse Source

定向知识点过滤

mingfu 1 month ago
parent
commit
b0e6e0aa4b

+ 11 - 3
ie-admin/src/main/java/com/ruoyi/web/controller/front/FrontPaperController.java

@@ -92,9 +92,17 @@ public class FrontPaperController {
     @ApiOperation("03 知识点树")
     @GetMapping(value = "knowledge")
     public AjaxResult getKnowledge(@ApiParam("定向") @RequestParam(defaultValue = "false") boolean directed, @ApiParam("科目ID") Long subjectId) {
-        LearnStudent learnStudent = learnStudentService.selectLearnStudentByStudentId(SecurityUtils.getUserId());
-        Long[] planIds = null != learnStudent ? new Long[] { learnStudent.getMajorPlanId() } : null;
-        List<LearnTeacherService.TreeNode> nodeList = learnTeacherService.getKnowledgeTree(subjectId, planIds, true);
+        Set<Long> knowledgeIdSet = null;
+        if(directed) {
+            LearnStudent learnStudent = learnStudentService.selectLearnStudentByStudentId(SecurityUtils.getUserId());
+            if(null != learnStudent) {
+                knowledgeIdSet = learnTeacherService.getKnowledgeIdSet(new Long[] { learnStudent.getMajorPlanId() });
+            }
+        }
+        List<LearnTeacherService.TreeNode> nodeList = learnTeacherService.getKnowledgeTree(subjectId, knowledgeIdSet, true);
+        if(CollectionUtils.isEmpty(knowledgeIdSet)) {
+            return AjaxResult.success(nodeList);
+        }
         List<LearnTeacherService.TreeNode> finalList = Lists.newArrayList();
         for(LearnTeacherService.TreeNode parent : nodeList) {
             if(CollectionUtils.isEmpty(parent.getChildren())) {

+ 3 - 1
ie-admin/src/main/java/com/ruoyi/web/controller/learn/LearnTeacherController.java

@@ -32,6 +32,7 @@ import org.springframework.web.bind.annotation.*;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
+import java.util.Set;
 import java.util.stream.Collectors;
 
 @RestController
@@ -144,7 +145,8 @@ public class LearnTeacherController extends BaseController {
     @ApiOperation("知识点列表")
     public AjaxResult knowledges(@ApiParam("科目ID") Long subjectId, @RequestParam(required = false) @ApiParam("专业计划ID") Long[] majorPlanIds)
     {
-        return AjaxResult.success(learnTeacherService.getKnowledgeTree(subjectId, majorPlanIds, false));
+        Set<Long> knowledgeIdSet = learnTeacherService.getKnowledgeIdSet(majorPlanIds);
+        return AjaxResult.success(learnTeacherService.getKnowledgeTree(subjectId, knowledgeIdSet, false));
     }
 
     @GetMapping("/questionTypes")

+ 5 - 4
ie-admin/src/main/java/com/ruoyi/web/service/LearnTeacherService.java

@@ -268,8 +268,7 @@ public class LearnTeacherService {
         return "";
     }
 
-    public List<TreeNode> getKnowledgeTree(Long subjectId, Long[] planIds, boolean count) {
-        Set<Long> knowledgeIdSet = getKnowledgeIdSet(planIds);
+    public List<TreeNode> getKnowledgeTree(Long subjectId, Set<Long> knowledgeIdSet, boolean count) {
         LearnKnowledgeTree ktCond = new LearnKnowledgeTree();
         ktCond.setSubjectId(subjectId);
         List<LearnKnowledgeTree> ktList = learnKnowledgeTreeMapper.selectLearnKnowledgeTreeList(ktCond);
@@ -380,8 +379,10 @@ public class LearnTeacherService {
             }
             parent.getChildren().add(node);
         }
-        for(TreeNode tn : treeNodeList) {
-            tn.setChecked(knowledgeIdSet);
+        if(!CollectionUtils.isEmpty(knowledgeIdSet)) {
+            for(TreeNode tn : treeNodeList) {
+                tn.setChecked(knowledgeIdSet);
+            }
         }
         return treeNodeList;
     }