From f8ec379d94c8ccbdadef657240429fe7c7f257ab Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Sat, 09 Oct 2021 17:57:51 +0800
Subject: [PATCH] 题目生成记录优化,单个新增修改为sql批量新增

---
 src/main/java/org/springblade/modules/exam/service/impl/ExamPaperServiceImpl.java |   13 +++++++++----
 src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.java            |    7 +++++++
 src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.xml             |   14 ++++++++++++++
 3 files changed, 30 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.java b/src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.java
index e983935..4d81b9d 100644
--- a/src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.java
+++ b/src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.java
@@ -20,6 +20,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
 import org.springblade.modules.apply.entity.Apply;
+import org.springblade.modules.exam.entity.ExamExaminationSubject;
 import org.springblade.modules.exam.entity.ExamPaper;
 import org.springblade.modules.exam.entity.ExamSubjectChoices;
 import org.springblade.modules.exam.vo.ExamPaperSubjectVO;
@@ -118,4 +119,10 @@
 	 * @return
 	 */
 	List<ExamSubjectChoicesVO> getExaminationSubjectList(@Param("examPaper")ExamPaperVO examPaperVO);
+
+	/**
+	 * 批量新增
+	 * @param list
+	 */
+    void insertBatch(@Param("list")List<ExamExaminationSubject> list);
 }
diff --git a/src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.xml b/src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.xml
index f0ea549..5a8d281 100644
--- a/src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.xml
+++ b/src/main/java/org/springblade/modules/exam/mapper/ExamPaperMapper.xml
@@ -307,4 +307,18 @@
         and ees.examination_id = #{examPaper.scoreId}
     </select>
 
+    <!--批量新增考生考题信息-->
+    <insert id="insertBatch" parameterType="java.util.List">
+        insert into exam_examination_subject
+        (examination_id,category_id,subject_id)
+        values
+        <foreach collection="list" index="index" item="item" separator=",">
+            (
+                #{item.examinationId},
+                #{item.categoryId},
+                #{item.subjectId}
+            )
+        </foreach>
+    </insert>
+
 </mapper>
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 6635094..20acbd3 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
@@ -32,9 +32,7 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 /**
  * 服务实现类
@@ -99,6 +97,8 @@
 		if (null!=paper.getScoreId()){
 			//随机分类信息
 			List<ExamSubjectChoicesVO> examSubjectChoicesVOS = baseMapper.queryRandomSubject(paper);
+//			long before = System.currentTimeMillis();
+			List<ExamExaminationSubject> list = new ArrayList<>();
 			examSubjectChoicesVOS.forEach(examSubjectChoicesVO -> {
 				//新增个人对应每场考试成绩试卷
 				ExamExaminationSubject ksxtSginup = new ExamExaminationSubject();
@@ -106,8 +106,13 @@
 				ksxtSginup.setCategoryId(examSubjectChoicesVO.getChoicesType());
 				ksxtSginup.setSubjectId(examSubjectChoicesVO.getId());
 				//新增
-				examExaminationSubjectService.save(ksxtSginup);
+//				examExaminationSubjectService.save(ksxtSginup);
+				list.add(ksxtSginup);
 			});
+			//批量新增
+			baseMapper.insertBatch(list);
+//			long after = System.currentTimeMillis();
+//			System.out.println("时间差"+(after-before));
 			//新增试卷关联信息
 			return examSubjectChoicesVOS;
 		}

--
Gitblit v1.9.3