From 10dfef66b7e8dc213123233ce35056a4ed5e4cba Mon Sep 17 00:00:00 2001
From: luohairen <3399054449@qq.com>
Date: 星期一, 11 十一月 2024 15:33:32 +0800
Subject: [PATCH] 错题本分页
---
src/main/java/com/ycl/jxkg/service/WrongService.java | 7 ++-
src/main/resources/mapper/ExamPaperScoreMapper.xml | 3 +
src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongResponseVO.java | 18 +++++++++
src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongPageVo.java | 18 +++++++++
src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongRequestVo.java | 5 ++
src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java | 4 ++
src/main/java/com/ycl/jxkg/controller/student/WrongController.java | 3 +
src/main/java/com/ycl/jxkg/service/impl/WrongServiceImpl.java | 47 +++++++++++++++++++----
8 files changed, 92 insertions(+), 13 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
index ed731e6..be66077 100644
--- a/src/main/java/com/ycl/jxkg/controller/student/WrongController.java
+++ b/src/main/java/com/ycl/jxkg/controller/student/WrongController.java
@@ -4,6 +4,7 @@
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.domain.vo.student.wrong.WrongResponseVO;
import com.ycl.jxkg.service.WrongService;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.PostMapping;
@@ -20,7 +21,7 @@
private final WrongService wrongService;
@PostMapping("/page")
- public Result<List<DoQuestionVO>> page(@RequestBody WrongRequestVo model) {
+ public Result<WrongResponseVO> 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/student/wrong/WrongPageVo.java b/src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongPageVo.java
new file mode 100644
index 0000000..597ebf2
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongPageVo.java
@@ -0,0 +1,18 @@
+package com.ycl.jxkg.domain.vo.student.wrong;
+
+import com.ycl.jxkg.domain.vo.DoQuestionVO;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class WrongPageVo {
+ private List<DoQuestionVO> list;
+ private int pageIndex;
+ private int pageSize;
+ private long total;
+}
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
index 4b953ed..c3c5755 100644
--- 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
@@ -13,5 +13,8 @@
public class WrongRequestVo extends BasePage {
private Integer userId;
private String title;
- private List<Integer> questionType;
+ private Integer questionType;
+ private String examName;
+ private Integer pageIndex;
+ private Integer pageSize;
}
diff --git a/src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongResponseVO.java b/src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongResponseVO.java
new file mode 100644
index 0000000..dfb1017
--- /dev/null
+++ b/src/main/java/com/ycl/jxkg/domain/vo/student/wrong/WrongResponseVO.java
@@ -0,0 +1,18 @@
+package com.ycl.jxkg.domain.vo.student.wrong;
+
+import com.ycl.jxkg.domain.vo.DoQuestionVO;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class WrongResponseVO {
+ private List<DoQuestionVO> list;
+ private Integer pageIndex;
+ private Integer pageSize;
+ private Integer total;
+}
diff --git a/src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java b/src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java
index 7c84af3..a07832c 100644
--- a/src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java
+++ b/src/main/java/com/ycl/jxkg/mapper/ExamPaperScoreMapper.java
@@ -8,6 +8,8 @@
import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageResponseVO;
import com.ycl.jxkg.domain.vo.student.exampaper.ExamPaperAnswerPageVO;
import com.ycl.jxkg.domain.vo.student.exampaper.UserAnswerPageResponseVO;
+import com.ycl.jxkg.domain.vo.student.wrong.WrongRequestVo;
+import com.ycl.jxkg.domain.vo.student.wrong.WrongResponseVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@@ -34,4 +36,6 @@
List<UserAnswerPageResponseVO> pageUser(UserAnswerPageRequestVO model);
List<ExamPaperScore> selectByUserId(Integer userId);
+
+ List<WrongResponseVO> selectWrong(WrongRequestVo wrongRequestVo);
}
diff --git a/src/main/java/com/ycl/jxkg/service/WrongService.java b/src/main/java/com/ycl/jxkg/service/WrongService.java
index 74d4027..d9c79f8 100644
--- a/src/main/java/com/ycl/jxkg/service/WrongService.java
+++ b/src/main/java/com/ycl/jxkg/service/WrongService.java
@@ -1,13 +1,16 @@
package com.ycl.jxkg.service;
import com.ycl.jxkg.domain.vo.DoQuestionVO;
+import com.ycl.jxkg.domain.vo.student.wrong.WrongPageVo;
import com.ycl.jxkg.domain.vo.student.wrong.WrongRequestVo;
+import com.ycl.jxkg.domain.vo.student.wrong.WrongResponseVO;
import java.util.List;
public interface WrongService {
/**
- * 鍒嗛〉鏉′欢鏌ヨ閿欓
+ * 鏉′欢鏌ヨ閿欓
* */
- List<DoQuestionVO> page(WrongRequestVo wrongRequestVo);
+ WrongResponseVO 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
index aaa7bb6..cedbbb1 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/WrongServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/WrongServiceImpl.java
@@ -1,10 +1,13 @@
package com.ycl.jxkg.service.impl;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.WrongPageVo;
import com.ycl.jxkg.domain.vo.student.wrong.WrongRequestVo;
+import com.ycl.jxkg.domain.vo.student.wrong.WrongResponseVO;
import com.ycl.jxkg.mapper.ExamPaperScoreMapper;
import com.ycl.jxkg.mapper.QuestionMapper;
import com.ycl.jxkg.service.WrongService;
@@ -30,17 +33,13 @@
/**
- * 鍒嗛〉鏉′欢鏌ヨ閿欓
+ * 鏉′欢鏌ヨ閿欓
* */
@Override
- public List<DoQuestionVO> page(WrongRequestVo wrongRequestVo) {
- // 鏌ヨ璇ョ敤鎴风殑鎵�鏈夐潪闅忔満璇曞嵎鍙婅瘯鍗烽敊棰�
-// List<ExamPaperScore> examPaperScores = examPaperScoreMapper
-// .selectList(new LambdaQueryChainWrapper<>(ExamPaperScore.class)
-// .eq(ExamPaperScore::getUserId,wrongRequestVo.getUserId()));
+ public WrongResponseVO page(WrongRequestVo wrongRequestVo) {
+ WrongResponseVO wrongResponseVO = new WrongResponseVO();
// 鏌ヨ璇ョ敤鎴风殑鎵�鏈夎�冭瘯
List<ExamPaperScore> examPaperScores = examPaperScoreMapper.selectByUserId(wrongRequestVo.getUserId());
- List<PaperFixQuestionVO> paperList = new ArrayList<>();
List<DoQuestionVO> questions = new ArrayList<>();
// 閬嶅巻鎵�鏈夎�冭瘯鑾峰緱鑰冭瘯璇︽儏
examPaperScores.stream().forEach(examPaperScore -> {
@@ -52,7 +51,8 @@
.filter(doQuestionVO -> !doQuestionVO.getRight())
.map(doQuestionVO -> {
// 鏍规嵁id鏌ヨ棰樺共
- Question question = questionMapper.selectById(doQuestionVO.getId());
+ Question question = questionMapper.selectOne(new LambdaQueryWrapper<>(Question.class).eq(Question::getId, doQuestionVO.getId()));
+// Question question = questionMapper.selectById(doQuestionVO.getId());
doQuestionVO.setExamId(examPaperScore.getExamId());
doQuestionVO.setExamName(examPaperScore.getExamName());
doQuestionVO.setTitle(question.getTitle());
@@ -65,6 +65,35 @@
e.printStackTrace();
}
});
- return questions;
+ // 鏉′欢鏌ヨ
+ // 瀵归泦鍚堜腑鐨勯鐩繘琛屾ā绯婃煡璇㈣繃婊�
+ List<DoQuestionVO> doQuestionVOS = questions.stream()
+ // 鏍囬涓嶄负绌烘垨绌哄瓧绗︿覆锛屾ā绯婃煡璇�
+ .filter(question -> {
+ if (wrongRequestVo.getTitle() == null || wrongRequestVo.getTitle().trim().equals("")) {
+ return true;
+ }
+ return question.getTitle().toLowerCase().contains(wrongRequestVo.getTitle().toLowerCase());
+ })
+ .filter(question -> {
+ if (wrongRequestVo.getQuestionType() == null) {
+ return true;
+ }
+ return question.getQuestionType().equals(wrongRequestVo.getQuestionType());
+ })
+ .filter(question -> {
+ if (wrongRequestVo.getExamName() == null || wrongRequestVo.getExamName().trim().equals("")) {
+ return true;
+ }
+ return question.getExamName().toLowerCase().contains(wrongRequestVo.getExamName().toLowerCase());
+ })
+ .collect(Collectors.toList());
+ // 鍒嗛〉
+ List<DoQuestionVO> list = doQuestionVOS.stream().skip((wrongRequestVo.getPageIndex() - 1) * wrongRequestVo.getPageSize()).collect(Collectors.toList());
+ wrongResponseVO.setList(list);
+ wrongResponseVO.setTotal(doQuestionVOS.size());
+ wrongResponseVO.setPageSize(wrongRequestVo.getPageSize());
+ wrongResponseVO.setPageIndex(wrongRequestVo.getPageIndex());
+ return wrongResponseVO;
}
}
diff --git a/src/main/resources/mapper/ExamPaperScoreMapper.xml b/src/main/resources/mapper/ExamPaperScoreMapper.xml
index aa5f665..0c5d29f 100644
--- a/src/main/resources/mapper/ExamPaperScoreMapper.xml
+++ b/src/main/resources/mapper/ExamPaperScoreMapper.xml
@@ -176,4 +176,7 @@
from t_exam_paper_score
where user_id = #{userId}
</select>
+ <select id="selectWrong" resultType="com.ycl.jxkg.domain.vo.student.wrong.WrongResponseVO">
+
+ </select>
</mapper>
--
Gitblit v1.8.0