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/simulateexam/service/impl/SimulateExamRecordServiceImpl.java |  194 ++++++++++++++++++++++++++++++++----------------
 1 files changed, 128 insertions(+), 66 deletions(-)

diff --git a/src/main/java/org/springblade/modules/simulateexam/service/impl/SimulateExamRecordServiceImpl.java b/src/main/java/org/springblade/modules/simulateexam/service/impl/SimulateExamRecordServiceImpl.java
index 5d4848b..c71e2da 100644
--- a/src/main/java/org/springblade/modules/simulateexam/service/impl/SimulateExamRecordServiceImpl.java
+++ b/src/main/java/org/springblade/modules/simulateexam/service/impl/SimulateExamRecordServiceImpl.java
@@ -27,6 +27,7 @@
 import org.springblade.modules.system.vo.UserVO;
 import org.springblade.modules.training.entity.TrainingRegistration;
 import org.springblade.modules.vip.entity.VipTopic;
+import org.springblade.modules.vip.service.UserVipService;
 import org.springblade.modules.vip.service.VipTopicService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -52,6 +53,9 @@
 	private VipTopicService vipTopicService;
 
 	@Autowired
+	private UserVipService userVipService;
+
+	@Autowired
 	private IUserService userService;
 
 	@Autowired
@@ -71,6 +75,88 @@
 		return page.setRecords(baseMapper.selectSimulateExamRecordPage(page, simulateExamRecord));
 	}
 
+//	/**
+//	 * 首次点击开始考试,创建模拟考试,并返回考试
+//	 * @param simulateExamRecord 模拟考试记录对象信息
+//	 * @return
+//	 */
+//	@Override
+//	public Object insertSimulateExamRecord(SimulateExamRecord simulateExamRecord) {
+//		//创建返回信息map
+//		Map<String, Object> map = new HashMap<>();
+//		//使用身份证号码匹配人员信息(user_id)
+//		User user = new User();
+//		user.setIsDeleted(0);
+//		user.setStatus(1);
+//		user.setCardid(simulateExamRecord.getIdCardNo());
+//		List<User> list = userService.list(Condition.getQueryWrapper(user));
+//		List<ExamSubjectChoicesVO> choicesVOList = new ArrayList<>();
+//		boolean status = false;
+//		if (list.size()>0){
+//			User user1 = list.get(0);
+//			//查询当前人员是否已缴费
+//			VipTopic vipTopic = new VipTopic();
+//			vipTopic.setUserId(user1.getId());
+//			VipTopic topic = vipTopicService.getOne(Condition.getQueryWrapper(vipTopic));
+//			//从当前人员考试题库随机取60题存入
+//			if (null!=topic){
+//				List<String> list1 = Arrays.asList(topic.getTopicIds().split(","));
+//				//获取随机的题目
+//				List<String> radio = list1.subList(0, 49);
+//				List<String> checkbox = list1.subList(50, 69);
+//				List<String> judge = list1.subList(70, 109);
+//				List<String> sort = list1.subList(110, 119);
+//				//随机题目
+//				List<ExamSubjectChoicesVO> radioRandomSubjectList = examPaperService.queryRandomSubjectList(radio,25);
+//				List<ExamSubjectChoicesVO> checkboxRandomSubjectList = examPaperService.queryRandomSubjectList(checkbox,10);
+//				List<ExamSubjectChoicesVO> judgeRandomSubjectList = examPaperService.queryRandomSubjectList(judge,20);
+//				List<ExamSubjectChoicesVO> sortRandomSubjectList = examPaperService.queryRandomSubjectList(sort,5);
+//
+//				//合并集合数据
+//				choicesVOList.addAll(radioRandomSubjectList);
+//				choicesVOList.addAll(checkboxRandomSubjectList);
+//				choicesVOList.addAll(judgeRandomSubjectList);
+//				choicesVOList.addAll(sortRandomSubjectList);
+//			}else {
+//				//未缴费人员从大题库随机抽取100道题目
+//				choicesVOList = examPaperService.simulateQueryRandomSubjectList();
+//			}
+//			//取出考试id
+//			List<Long> longList = choicesVOList.stream().map(ExamSubjectChoicesVO::getId).collect(Collectors.toList());
+//			//装换为字符串
+//			List<String> list2 = new ArrayList<>();
+//			for (Long aLong : longList) {
+//				list2.add(aLong.toString());
+//			}
+//			String collect = list2.stream().collect(Collectors.joining(","));
+//			//设置题目信息
+//			simulateExamRecord.setSubjectIds(collect);
+//			simulateExamRecord.setStartTime(new Date());
+//			//考试剩余时长初始值为90分钟
+//			simulateExamRecord.setAnswerTime(90*60*1000L);
+//			//考试中,开始计时
+//			simulateExamRecord.setStatus(1);
+//			//新增模拟考试记录信息
+//			status = this.save(simulateExamRecord);
+//
+////				ExamSubjectChoices examSubjectChoices = new ExamSubjectChoices();
+////				examSubjectChoices.setId(choicesVOList.get(0).getId());
+////				ExamSubjectChoicesVO examSubjectChoicesVO = examSubjectChoicesService.selectExamSubjectChoicesInfo(examSubjectChoices);
+//			if (status){
+//				map.put("simulateExamRecord",simulateExamRecord);
+//				map.put("examSubjectInfo",choicesVOList);
+////					map.put("examSubjectChoicesVO",examSubjectChoicesVO);
+//				//返回信息
+//				return map;
+//			}
+//		}else {
+//			throw new ServiceException("未查询到该人员信息");
+//		}
+//		//返回数据
+//		return map;
+//	}
+
+
 	/**
 	 * 首次点击开始考试,创建模拟考试,并返回考试
 	 * @param simulateExamRecord 模拟考试记录对象信息
@@ -78,75 +164,48 @@
 	 */
 	@Override
 	public Object insertSimulateExamRecord(SimulateExamRecord simulateExamRecord) {
-		//创建返回信息map
+//		//创建返回信息map
 		Map<String, Object> map = new HashMap<>();
-		//使用身份证号码匹配人员信息(user_id)
-		User user = new User();
-		user.setIsDeleted(0);
-		user.setStatus(1);
-		user.setCardid(simulateExamRecord.getIdCardNo());
-		List<User> list = userService.list(Condition.getQueryWrapper(user));
+//		//使用身份证号码匹配人员信息(user_id)
+//		User user = new User();
+//		user.setIsDeleted(0);
+//		user.setStatus(1);
+//		user.setCardid(simulateExamRecord.getIdCardNo());
+//		List<User> list = userService.list(Condition.getQueryWrapper(user));
 		List<ExamSubjectChoicesVO> choicesVOList = new ArrayList<>();
-		if (list.size()>0){
-			User user1 = list.get(0);
-			//查询当前人员的考试题库,已缴费id
-			VipTopic vipTopic = new VipTopic();
-			vipTopic.setUserId(user1.getId());
-			VipTopic topic = vipTopicService.getOne(Condition.getQueryWrapper(vipTopic));
-			//从当前人员考试题库随机取60题存入
-			if (null!=topic){
-				List<String> list1 = Arrays.asList(topic.getTopicIds().split(","));
-				//获取随机的题目
-				List<String> radio = list1.subList(0, 49);
-				List<String> checkbox = list1.subList(50, 69);
-				List<String> judge = list1.subList(70, 109);
-				List<String> sort = list1.subList(110, 119);
-				//随机题目
-				List<ExamSubjectChoicesVO> radioRandomSubjectList = examPaperService.queryRandomSubjectList(radio,25);
-				List<ExamSubjectChoicesVO> checkboxRandomSubjectList = examPaperService.queryRandomSubjectList(checkbox,10);
-				List<ExamSubjectChoicesVO> judgeRandomSubjectList = examPaperService.queryRandomSubjectList(judge,20);
-//				List<ExamSubjectChoicesVO> sortRandomSubjectList = examPaperService.queryRandomSubjectList(sort,5);
-
-				//合并集合数据
-				choicesVOList.addAll(radioRandomSubjectList);
-				choicesVOList.addAll(checkboxRandomSubjectList);
-				choicesVOList.addAll(judgeRandomSubjectList);
-//				choicesVOList.addAll(sortRandomSubjectList);
-
-				//取出考试id
-				List<Long> longList = choicesVOList.stream().map(ExamSubjectChoicesVO::getId).collect(Collectors.toList());
-				//装换为字符串
-				List<String> list2 = new ArrayList<>();
-				for (Long aLong : longList) {
-					list2.add(aLong.toString());
-				}
-				String collect = list2.stream().collect(Collectors.joining(","));
-				//设置题目信息
-				simulateExamRecord.setSubjectIds(collect);
-				simulateExamRecord.setStartTime(new Date());
-				//考试剩余时长初始值为60分钟
-				simulateExamRecord.setAnswerTime(60*60*1000L);
-				//考试中,开始计时
-				simulateExamRecord.setStatus(1);
-				//新增模拟考试记录信息
-				boolean status = this.save(simulateExamRecord);
-
-				ExamSubjectChoices examSubjectChoices = new ExamSubjectChoices();
-				examSubjectChoices.setId(choicesVOList.get(0).getId());
-				ExamSubjectChoicesVO examSubjectChoicesVO = examSubjectChoicesService.selectExamSubjectChoicesInfo(examSubjectChoices);
-				if (status){
-					map.put("simulateExamRecord",simulateExamRecord);
-					map.put("examSubjectInfo",choicesVOList);
-					map.put("examSubjectChoicesVO",examSubjectChoicesVO);
-					//返回信息
-					return map;
-				}
-			}else {
-				throw new ServiceException("未查询到该人员缴费信息");
+		boolean status = false;
+//		if (list.size()>0){
+//			User user1 = list.get(0);
+			//从大题库随机抽取100道题目
+			choicesVOList = examPaperService.simulateQueryRandomSubjectList();
+			//取出考试id
+			List<Long> longList = choicesVOList.stream().map(ExamSubjectChoicesVO::getId).collect(Collectors.toList());
+			//装换为字符串
+			List<String> list2 = new ArrayList<>();
+			for (Long aLong : longList) {
+				list2.add(aLong.toString());
 			}
-		}else {
-			throw new ServiceException("未查询到该人员信息");
-		}
+			String collect = list2.stream().collect(Collectors.joining(","));
+			//设置题目信息
+			simulateExamRecord.setSubjectIds(collect);
+			simulateExamRecord.setStartTime(new Date());
+			//考试剩余时长初始值为90分钟
+			simulateExamRecord.setAnswerTime(90*60*1000L);
+			//考试中,开始计时
+			simulateExamRecord.setStatus(1);
+			//新增模拟考试记录信息
+			status = this.save(simulateExamRecord);
+
+			if (status){
+				map.put("simulateExamRecord",simulateExamRecord);
+				map.put("examSubjectInfo",choicesVOList);
+//					map.put("examSubjectChoicesVO",examSubjectChoicesVO);
+				//返回信息
+				return map;
+			}
+//		}else {
+//			throw new ServiceException("未查询到该人员信息");
+//		}
 		//返回数据
 		return map;
 	}
@@ -279,6 +338,9 @@
 			}
 			//设置总分
 			simulateExamRecord.setScore(count);
+			// 考试完成
+			simulateExamRecord.setStatus(3);
+			simulateExamRecord.setEndTime(new Date());
 			//更新模拟考试信息
 			this.updateById(simulateExamRecord);
 			//返回

--
Gitblit v1.9.3