Bladeren bron

修复题目收藏

jinxia.mo 1 maand geleden
bovenliggende
commit
7ab6d5244f

+ 2 - 2
ie-admin/src/main/java/com/ruoyi/web/controller/front/FrontQuestionsController.java

@@ -21,7 +21,7 @@ public class FrontQuestionsController extends BaseController {
 
     @ApiOperation("收藏试题")
     @PostMapping("collect")
-    public AjaxResult collect(@PathVariable Long questionId) {
+    public AjaxResult collect(Long questionId) {
         QuestionCollection questionCollection = new QuestionCollection();
         questionCollection.setUserId(SecurityUtils.getLoginUser().getUser().getUserId());
         questionCollection.setQuestionId(questionId);
@@ -33,7 +33,7 @@ public class FrontQuestionsController extends BaseController {
 
     @ApiOperation("取消收藏试题")
     @PostMapping("cancelCollect")
-    public AjaxResult cancelQuestionCollection(@PathVariable Long questionId) {
+    public AjaxResult cancelQuestionCollection(Long questionId) {
         Long userId = SecurityUtils.getLoginUser().getUser().getUserId();
         return toAjax(questionCollectionService.deleteQuestionCollectionById(questionId, userId));
     }

+ 10 - 8
ie-system/src/main/java/com/ruoyi/learn/service/impl/LearnQuestionsServiceImpl.java

@@ -110,13 +110,15 @@ public class LearnQuestionsServiceImpl implements ILearnQuestionsService
             return;
         }
         List<Long> ids = questions.stream().map(LearnQuestions::getId).collect(Collectors.toList());
-        Map<String, Object> map = new HashMap<String, Object>();
-        map.put("userId", userId);
-        map.put("ids", ids);
-        List<LearnQuestions> collectInfos = learnQuestionsMapper.selectCollectInfo(map);
-        Set<Long> collected = collectInfos.stream().map(LearnQuestions::getId).collect(Collectors.toSet());
-        questions.forEach(e -> {
-            e.setCollect(collected.contains(e.getId()));
-        });
+        if (CollectionUtils.isNotEmpty(ids)){
+            Map<String, Object> map = new HashMap<String, Object>();
+            map.put("userId", userId);
+            map.put("ids", ids);
+            List<LearnQuestions> collectInfos = learnQuestionsMapper.selectCollectInfo(map);
+            Set<Long> collected = collectInfos.stream().map(LearnQuestions::getId).collect(Collectors.toSet());
+            questions.forEach(e -> {
+                e.setCollect(collected.contains(e.getId()));
+            });
+        }
     }
 }

+ 2 - 3
ie-system/src/main/resources/mapper/learn/LearnQuestionsMapper.xml

@@ -321,13 +321,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         select q.* from mxjb_question_collection c
         left join learn_questions q on c.question_id = q.id
         left join dz_subject s on q.subjectId = s.subject_id
-        where c.user_id = #{userId}
-        and q.subjectId = #{subjectId}
+        <if test="subjectId != null "> and q.subjectId = #{subjectId}  = #{subjectId}</if>
     </select>
 
     <select id="selectCollectInfo"  parameterType="java.util.HashMap" resultMap="LearnQuestionsResult">
         SELECT q.id from mxjb_question_collection c
-        left join questions q on c.question_id = q.id
+        left join learn_questions q on c.question_id = q.id
         where user_id = #{userId}
         and c.question_id in
         <foreach item="id" collection="ids" open="(" separator="," close=")">