From 62eb499b0c969f246d3245d1429a97da4de1ce28 Mon Sep 17 00:00:00 2001
From: 钟日健 <arsn163@163.com>
Date: Mon, 01 Jun 2026 20:46:13 +0800
Subject: [PATCH] feat: 成绩查询增加年龄查询返回
---
src/main/java/org/springblade/modules/exam/service/impl/ExamPaperServiceImpl.java | 181 +++++++++++++++++++++++++++++++++------------
1 files changed, 132 insertions(+), 49 deletions(-)
diff --git a/src/main/java/org/springblade/modules/exam/service/impl/ExamPaperServiceImpl.java b/src/main/java/org/springblade/modules/exam/service/impl/ExamPaperServiceImpl.java
index 86359c4..cda1fa8 100644
--- a/src/main/java/org/springblade/modules/exam/service/impl/ExamPaperServiceImpl.java
+++ b/src/main/java/org/springblade/modules/exam/service/impl/ExamPaperServiceImpl.java
@@ -113,49 +113,83 @@
return baseMapper.queryPagerSubject(paper);
}
+// @Override
+// public List<ExamSubjectChoicesVO> queryRandomSubject(ExamPaperVO paper) {
+// //保存题目信息
+// if (null!=paper.getScoreId()){
+// //查询该保安员是否为会员
+// ExamScore score = examScoreService.getById(paper.getScoreId());
+// TrainingRegistration trainingRegistration = trainingRegistrationService.getById(score.getApplyId());
+//
+// List<ExamSubjectChoicesVO> examSubjectChoicesVOS = new ArrayList<>();
+// if (null!=trainingRegistration.getVipStatus()){
+// //如果是会员,从会员库里取题目
+// if (trainingRegistration.getVipStatus().equals(1)){
+// //查询该vip 用户的 vip 库,从该120题中取出题目
+// VipTopic vipTopic = new VipTopic();
+// vipTopic.setUserId(Long.parseLong(score.getUserId()));
+//// vipTopic.setApplyId(score.getApplyId());
+// VipTopic topic = vipTopicService.getOne(Condition.getQueryWrapper(vipTopic));
+// if (null!=topic){
+// List<String> list = Arrays.asList(topic.getTopicIds().split(","));
+//// System.out.println("list.size() = " + list.size());
+// List<String> radio = list.subList(0, 49);
+// List<String> checkbox = list.subList(50, 69);
+// List<String> judge = list.subList(70, 109);
+// List<String> sort = list.subList(110, 119);
+// //随机题目
+// List<ExamSubjectChoicesVO> radioRandomSubjectList = baseMapper.queryRandomSubjectList(radio,25);
+// List<ExamSubjectChoicesVO> checkboxRandomSubjectList = baseMapper.queryRandomSubjectList(checkbox,10);
+// List<ExamSubjectChoicesVO> judgeRandomSubjectList = baseMapper.queryRandomSubjectList(judge,20);
+// List<ExamSubjectChoicesVO> sortRandomSubjectList = baseMapper.queryRandomSubjectList(sort,5);
+// //合并集合数据
+// examSubjectChoicesVOS.addAll(radioRandomSubjectList);
+// examSubjectChoicesVOS.addAll(checkboxRandomSubjectList);
+// examSubjectChoicesVOS.addAll(judgeRandomSubjectList);
+// examSubjectChoicesVOS.addAll(sortRandomSubjectList);
+// }
+// }else {
+// //随机分类信息
+// examSubjectChoicesVOS = baseMapper.queryRandomSubject(paper);
+// }
+// }else {
+// //随机分类信息
+// examSubjectChoicesVOS = baseMapper.queryRandomSubject(paper);
+// }
+//// long before = System.currentTimeMillis();
+// List<ExamExaminationSubject> list = new ArrayList<>();
+// examSubjectChoicesVOS.forEach(examSubjectChoicesVO -> {
+// //新增个人对应每场考试成绩试卷
+// ExamExaminationSubject ksxtSginup = new ExamExaminationSubject();
+// ksxtSginup.setExaminationId(paper.getScoreId());
+// ksxtSginup.setCategoryId(examSubjectChoicesVO.getChoicesType());
+// ksxtSginup.setSubjectId(examSubjectChoicesVO.getId());
+// //新增
+//// examExaminationSubjectService.save(ksxtSginup);
+// list.add(ksxtSginup);
+// //将题目答案设置为空字符串,不让前端看到
+// examSubjectChoicesVO.setAnswer("");
+// });
+// //批量新增
+// baseMapper.insertBatch(list);
+//// long after = System.currentTimeMillis();
+//// System.out.println("时间差"+(after-before));
+// //新增试卷关联信息
+// return examSubjectChoicesVOS;
+// }
+// //返回
+// return null;
+// }
+
+
@Override
public List<ExamSubjectChoicesVO> queryRandomSubject(ExamPaperVO paper) {
//保存题目信息
if (null!=paper.getScoreId()){
//查询该保安员是否为会员
- ExamScore score = examScoreService.getById(paper.getScoreId());
- TrainingRegistration trainingRegistration = trainingRegistrationService.getById(score.getApplyId());
-
+// ExamScore score = examScoreService.getById(paper.getScoreId());
List<ExamSubjectChoicesVO> examSubjectChoicesVOS = new ArrayList<>();
- if (null!=trainingRegistration.getVipStatus()){
- //如果是会员,从会员库里取题目
- if (trainingRegistration.getVipStatus().equals(1)){
- //查询该vip 用户的 vip 库,从该120题中取出题目
- VipTopic vipTopic = new VipTopic();
- vipTopic.setUserId(Long.parseLong(score.getUserId()));
-// vipTopic.setApplyId(score.getApplyId());
- VipTopic topic = vipTopicService.getOne(Condition.getQueryWrapper(vipTopic));
- if (null!=topic){
- List<String> list = Arrays.asList(topic.getTopicIds().split(","));
-// System.out.println("list.size() = " + list.size());
- List<String> radio = list.subList(0, 49);
- List<String> checkbox = list.subList(50, 69);
- List<String> judge = list.subList(70, 109);
- List<String> sort = list.subList(110, 119);
- //随机题目
- List<ExamSubjectChoicesVO> radioRandomSubjectList = baseMapper.queryRandomSubjectList(radio,25);
- List<ExamSubjectChoicesVO> checkboxRandomSubjectList = baseMapper.queryRandomSubjectList(checkbox,10);
- List<ExamSubjectChoicesVO> judgeRandomSubjectList = baseMapper.queryRandomSubjectList(judge,20);
- List<ExamSubjectChoicesVO> sortRandomSubjectList = baseMapper.queryRandomSubjectList(sort,5);
- //合并集合数据
- examSubjectChoicesVOS.addAll(radioRandomSubjectList);
- examSubjectChoicesVOS.addAll(checkboxRandomSubjectList);
- examSubjectChoicesVOS.addAll(judgeRandomSubjectList);
- examSubjectChoicesVOS.addAll(sortRandomSubjectList);
- }
- }else {
- //随机分类信息
- examSubjectChoicesVOS = baseMapper.queryRandomSubject(paper);
- }
- }else {
- //随机分类信息
- examSubjectChoicesVOS = baseMapper.queryRandomSubject(paper);
- }
+ examSubjectChoicesVOS = baseMapper.queryRandomSubject(paper);
// long before = System.currentTimeMillis();
List<ExamExaminationSubject> list = new ArrayList<>();
examSubjectChoicesVOS.forEach(examSubjectChoicesVO -> {
@@ -172,8 +206,6 @@
});
//批量新增
baseMapper.insertBatch(list);
-// long after = System.currentTimeMillis();
-// System.out.println("时间差"+(after-before));
//新增试卷关联信息
return examSubjectChoicesVOS;
}
@@ -265,35 +297,55 @@
Map<String, Object> map = new HashMap<>(4);
//1.查询当前人员当前考试的考试题目信息
List<ExamSubjectChoicesVO> examSubjectChoicesVOSList = baseMapper.getExaminationSubjectList(examPaperVO);
-
+ if (examSubjectChoicesVOSList.size()==0) {
+ examSubjectChoicesVOSList = baseMapper.queryRandomSubject(null);
+ List<ExamExaminationSubject> list = new ArrayList<>();
+ examSubjectChoicesVOSList.forEach(examSubjectChoicesVO -> {
+ //新增个人对应每场考试成绩试卷
+ ExamExaminationSubject ksxtSginup = new ExamExaminationSubject();
+ ksxtSginup.setExaminationId(examPaperVO.getScoreId());
+ ksxtSginup.setCategoryId(examSubjectChoicesVO.getChoicesType());
+ ksxtSginup.setSubjectId(examSubjectChoicesVO.getId());
+ //新增
+ list.add(ksxtSginup);
+ //将题目答案设置为空字符串,不让前端看到
+ examSubjectChoicesVO.setAnswer("");
+ });
+ //批量新增
+ baseMapper.insertBatch(list);
+ }
//2.查询当前人员已答的题目信息
ExamAnswerRecord examAnswerRecord = new ExamAnswerRecord();
examAnswerRecord.setScoreId(examPaperVO.getScoreId());
List<ExamAnswerRecord> examAnswerRecordList = examAnswerRecordService.list(Condition.getQueryWrapper(examAnswerRecord));
//3.查询正在答题的信息
- int count = examAnswerRecordList.size();
+ int count = examAnswerRecordList.size();
//查询下一题题目信息
ExamSubjectChoicesVO examSubjectChoicesVO = new ExamSubjectChoicesVO();
ExamSubjectChoices examSubjectChoices = new ExamSubjectChoices();
- if (count>0) {
+ if (count == 0) {
+ examSubjectChoices.setId(examSubjectChoicesVOSList.get(0).getId());
+ examSubjectChoicesVO = examSubjectChoicesService.selectExamSubjectChoicesInfo(examSubjectChoices);
+ }
+ if (count > 0 && count<100) {
examSubjectChoices.setId(examSubjectChoicesVOSList.get(count).getId());
examSubjectChoicesVO = examSubjectChoicesService.selectExamSubjectChoicesInfo(examSubjectChoices);
}
- if (count==0) {
- examSubjectChoices.setId(examSubjectChoicesVOSList.get(0).getId());
+ if (count == 100) {
+ // 查最后一道题信息
+ examSubjectChoices.setId(examSubjectChoicesVOSList.get(99).getId());
examSubjectChoicesVO = examSubjectChoicesService.selectExamSubjectChoicesInfo(examSubjectChoices);
}
//4.其他信息
ExamScore examScore = examScoreService.getById(examPaperVO.getScoreId());
-
//5.数据封装
- map.put("examSubjectChoicesVOSList",examSubjectChoicesVOSList);
- map.put("examAnswerRecordList",examAnswerRecordList);
- map.put("examSubjectChoicesVO",examSubjectChoicesVO);
- map.put("examScore",examScore);
+ map.put("examSubjectChoicesVOSList", examSubjectChoicesVOSList);
+ map.put("examAnswerRecordList", examAnswerRecordList);
+ map.put("examSubjectChoicesVO", examSubjectChoicesVO);
+ map.put("examScore", examScore);
//6.返回数据
return map;
@@ -366,4 +418,35 @@
public List<ExamScoreVO> getExamScoreList(ExamScoreVO examScoreVO) {
return baseMapper.getExamScoreList(examScoreVO);
}
+
+
+ /**
+ * 根据id 取出题目信息(随机取)
+ * @param list 题目id集合
+ * @param number 题目梳理
+ * @return
+ */
+ @Override
+ public List<ExamSubjectChoicesVO> queryRandomSubjectList(List<String> list, int number) {
+ return baseMapper.queryRandomSubjectList(list,number);
+ }
+
+ /**
+ * 模拟考试随机抽题,未缴费人员
+ * @return
+ */
+ @Override
+ public List<ExamSubjectChoicesVO> simulateQueryRandomSubjectList() {
+ return baseMapper.simulateQueryRandomSubjectList();
+ }
+
+ @Override
+ public List<ExamPaperVO> getList(ExamPaperVO examPaperVO) {
+ return baseMapper.getList(examPaperVO);
+ }
+
+ @Override
+ public ExamPaperVO getLatest(ExamPaperVO examPaperVO) {
+ return baseMapper.getLatest(examPaperVO);
+ }
}
--
Gitblit v1.9.3