From 4adad521e6464025402639d0c2f7602610d15a67 Mon Sep 17 00:00:00 2001
From: luohairen <3399054449@qq.com>
Date: 星期四, 07 十一月 2024 09:21:43 +0800
Subject: [PATCH] 错题展示
---
src/main/java/com/ycl/jxkg/service/WrongService.java | 13 ++++
src/main/java/com/ycl/jxkg/domain/vo/DoQuestionVO.java | 5 +
src/main/resources/mapper/ExamPaperScoreMapper.xml | 6 ++
src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongRequestVo.java | 17 +++++
src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java | 2
src/main/java/com/ycl/jxkg/controller/student/WrongController.java | 27 +++++++++
src/main/java/com/ycl/jxkg/service/impl/WrongServiceImpl.java | 70 +++++++++++++++++++++++
7 files changed, 140 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/ycl/jxkg/controller/student/WrongController.java b/src/main/java/com/ycl/jxkg/controller/student/WrongController.java
new file mode 100644
index 0000000..ed731e6
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/controller/student/WrongController.java
@@ -0,0 +1,27 @@
+package com.ycl.jxkg.controller.student;
+
+import com.ycl.jxkg.base.BaseApiController;
+import com.ycl.jxkg.base.Result;
+import com.ycl.jxkg.domain.vo.DoQuestionVO;
+import com.ycl.jxkg.domain.vo.student.wrong.WrongRequestVo;
+import com.ycl.jxkg.service.WrongService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/api/student/wrong")
+public class WrongController extends BaseApiController {
+ private final WrongService wrongService;
+
+ @PostMapping("/page")
+ public Result<List<DoQuestionVO>> page(@RequestBody WrongRequestVo model) {
+ model.setUserId(getCurrentUser().getId());
+ return Result.ok(wrongService.page(model));
+ }
+}
diff --git a/src/main/java/com/ycl/jxkg/domain/vo/DoQuestionVO.java b/src/main/java/com/ycl/jxkg/domain/vo/DoQuestionVO.java
index 134e69d..d119e5b 100644
--- a/src/main/java/com/ycl/jxkg/domain/vo/DoQuestionVO.java
+++ b/src/main/java/com/ycl/jxkg/domain/vo/DoQuestionVO.java
@@ -48,4 +48,9 @@
private Integer itemOrder;
/** 棰樼洰閫夐」 */
private List<QuestionItemObject> questionItemList;
+
+ /** 鑰冭瘯id */
+ private Integer examId;
+ /** 鑰冭瘯鍚嶇О */
+ private String examName;
}
diff --git a/src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongRequestVo.java b/src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongRequestVo.java
new file mode 100644
index 0000000..4b953ed
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongRequestVo.java
@@ -0,0 +1,17 @@
+package com.ycl.jxkg.domain.vo.student.wrong;
+
+import com.ycl.jxkg.base.BasePage;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class WrongRequestVo extends BasePage {
+ private Integer userId;
+ private String title;
+ private List<Integer> questionType;
+}
diff --git a/src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java b/src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java
index 800f5ad..7c84af3 100644
--- a/src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java
+++ b/src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java
@@ -32,4 +32,6 @@
ExamPaperScore getByExamIdUserId(@Param("examId") Integer examId, @Param("userId") Integer userId);
List<UserAnswerPageResponseVO> pageUser(UserAnswerPageRequestVO model);
+
+ List<ExamPaperScore> selectByUserId(Integer userId);
}
diff --git a/src/main/java/com/ycl/jxkg/service/WrongService.java b/src/main/java/com/ycl/jxkg/service/WrongService.java
new file mode 100644
index 0000000..74d4027
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/service/WrongService.java
@@ -0,0 +1,13 @@
+package com.ycl.jxkg.service;
+
+import com.ycl.jxkg.domain.vo.DoQuestionVO;
+import com.ycl.jxkg.domain.vo.student.wrong.WrongRequestVo;
+
+import java.util.List;
+
+public interface WrongService {
+ /**
+ * 鍒嗛〉鏉′欢鏌ヨ閿欓
+ * */
+ List<DoQuestionVO> page(WrongRequestVo wrongRequestVo);
+}
diff --git a/src/main/java/com/ycl/jxkg/service/impl/WrongServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/WrongServiceImpl.java
new file mode 100644
index 0000000..aaa7bb6
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/service/impl/WrongServiceImpl.java
@@ -0,0 +1,70 @@
+package com.ycl.jxkg.service.impl;
+
+import com.ycl.jxkg.domain.entity.ExamPaperScore;
+import com.ycl.jxkg.domain.entity.Question;
+import com.ycl.jxkg.domain.vo.DoQuestionVO;
+import com.ycl.jxkg.domain.vo.PaperFixQuestionVO;
+import com.ycl.jxkg.domain.vo.student.wrong.WrongRequestVo;
+import com.ycl.jxkg.mapper.ExamPaperScoreMapper;
+import com.ycl.jxkg.mapper.QuestionMapper;
+import com.ycl.jxkg.service.WrongService;
+import com.ycl.jxkg.utils.JsonUtil;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Service
+@RequiredArgsConstructor
+@Slf4j
+public class WrongServiceImpl implements WrongService {
+ @Autowired
+ private ExamPaperScoreMapper examPaperScoreMapper;
+ @Autowired
+ private QuestionMapper questionMapper;
+
+
+
+ /**
+ * 鍒嗛〉鏉′欢鏌ヨ閿欓
+ * */
+ @Override
+ public List<DoQuestionVO> page(WrongRequestVo wrongRequestVo) {
+ // 鏌ヨ璇ョ敤鎴风殑鎵�鏈夐潪闅忔満璇曞嵎鍙婅瘯鍗烽敊棰�
+// List<ExamPaperScore> examPaperScores = examPaperScoreMapper
+// .selectList(new LambdaQueryChainWrapper<>(ExamPaperScore.class)
+// .eq(ExamPaperScore::getUserId,wrongRequestVo.getUserId()));
+ // 鏌ヨ璇ョ敤鎴风殑鎵�鏈夎�冭瘯
+ List<ExamPaperScore> examPaperScores = examPaperScoreMapper.selectByUserId(wrongRequestVo.getUserId());
+ List<PaperFixQuestionVO> paperList = new ArrayList<>();
+ List<DoQuestionVO> questions = new ArrayList<>();
+ // 閬嶅巻鎵�鏈夎�冭瘯鑾峰緱鑰冭瘯璇︽儏
+ examPaperScores.stream().forEach(examPaperScore -> {
+ try{
+ // 瑙f瀽json瀛楃涓�
+ List<PaperFixQuestionVO> paperFixQuestionVOS = JsonUtil.toJsonListObject(examPaperScore.getPaperContent(), PaperFixQuestionVO.class);
+ paperFixQuestionVOS.stream().forEach(paperFixQuestionVO -> {
+ List<DoQuestionVO> doQuestionVOS = paperFixQuestionVO.getQuestionList().stream()
+ .filter(doQuestionVO -> !doQuestionVO.getRight())
+ .map(doQuestionVO -> {
+ // 鏍规嵁id鏌ヨ棰樺共
+ Question question = questionMapper.selectById(doQuestionVO.getId());
+ doQuestionVO.setExamId(examPaperScore.getExamId());
+ doQuestionVO.setExamName(examPaperScore.getExamName());
+ doQuestionVO.setTitle(question.getTitle());
+ return doQuestionVO;
+ })
+ .collect(Collectors.toList());
+ questions.addAll(doQuestionVOS);
+ });
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ });
+ return questions;
+ }
+}
diff --git a/src/main/resources/mapper/ExamPaperScoreMapper.xml b/src/main/resources/mapper/ExamPaperScoreMapper.xml
index a29bf61..1221a14 100644
--- a/src/main/resources/mapper/ExamPaperScoreMapper.xml
+++ b/src/main/resources/mapper/ExamPaperScoreMapper.xml
@@ -167,4 +167,10 @@
GROUP BY a.id
</select>
+ <select id="selectByUserId" resultType="com.ycl.jxkg.domain.entity.ExamPaperScore">
+ SELECT
+ <include refid="Base_Column_List"/>
+ from t_exam_paper_score
+ where user_id = #{userId}
+ </select>
</mapper>
--
Gitblit v1.8.0