From a7e45ce0968fa999e834ddb6daf6f43348a044a1 Mon Sep 17 00:00:00 2001
From: Administrator <admin>
Date: Sun, 12 Jun 2022 23:16:31 +0800
Subject: [PATCH] 新增成绩同步接口

---
 src/main/java/org/springblade/modules/exam/service/ExamScoreService.java          |    7 +++
 src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.java            |    7 +++
 src/main/java/org/springblade/modules/exam/service/impl/ExamScoreServiceImpl.java |   10 +++++
 src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.xml             |    5 ++
 src/main/java/org/springblade/modules/exam/controller/ExamScoreController.java    |   64 ++++++++++++++++++++++++++++++++
 src/main/resources/application.yml                                                |    1 
 6 files changed, 94 insertions(+), 0 deletions(-)

diff --git a/src/main/java/org/springblade/modules/exam/controller/ExamScoreController.java b/src/main/java/org/springblade/modules/exam/controller/ExamScoreController.java
index 47f8daa..b54b86f 100644
--- a/src/main/java/org/springblade/modules/exam/controller/ExamScoreController.java
+++ b/src/main/java/org/springblade/modules/exam/controller/ExamScoreController.java
@@ -570,4 +570,68 @@
 	}
 
 
+	/**
+	 * 考试成绩同步
+	 * @param time
+	 * @param startScore
+	 * @param endScore
+	 * @return
+	 */
+	@GetMapping("/examScoreSync")
+	public void examScoreSync(String time,Integer startScore,Integer endScore) {
+		System.out.println("考试成绩同步"+new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
+		//查询当天的考试成绩
+		List<ExamScore> examScoreList = examScoreService.getExamScoreListByTime(time);
+		if (examScoreList.size()>0) {
+			//遍历计算成绩
+			for (ExamScore examScore : examScoreList) {
+				ExamAnswerRecord record = new ExamAnswerRecord();
+				record.setScoreId(examScore.getId());
+				List<ExamAnswerRecord> list = examAnswerRecordService.list(new QueryWrapper<>(record));
+				if (list.size()>0){
+					int num = 0;
+					for (ExamAnswerRecord examAnswerRecord : list) {
+						num = num + examAnswerRecord.getAnswerScore();
+						examScore.setExamEndTime(examAnswerRecord.getAnswerTime());
+					}
+					examScore.setTheoryGrade(num);
+					examScore.setAllGrade(Math.round(num/2));
+					//设置状态
+					if (num >= 60) {
+						examScore.setQualified(2);
+					} else {
+						examScore.setQualified(1);
+					}
+					examScoreService.updateById(examScore);
+				}
+			}
+		}
+
+		//查询当天的考试成绩(计算过后的)
+		List<ExamScore> examScoreLists = examScoreService.getExamScoreListByTime(time);
+		if (examScoreLists.size()>0) {
+			//遍历计算成绩
+			for (ExamScore examScore : examScoreLists) {
+				if (null!=examScore.getTheoryGrade()) {
+					if (examScore.getTheoryGrade() >= startScore && examScore.getTheoryGrade() <= endScore) {
+						//生成随机数,在60-79 之间
+						int score = (int) ((Math.random() * 20));
+						int sc = score + 60;
+						examScore.setTheoryGrade(sc);
+						//设置为合格
+						examScore.setQualified(2);
+						examScore.setAllGrade(examScore.getTheoryGrade() / 2);
+//						examScoreService.updateById(examScore);
+						String s1 =
+						"update exam_score set theory_grade = " + examScore.getTheoryGrade() +
+							",all_grade = " + "'" + examScore.getAllGrade() + "'" +
+							",qualified = " + "'" + examScore.getQualified() + "'" +
+							" " + "where id = " + "'" + examScore.getId() + "'";
+						myAsyncService.FTP(s1);
+					}
+				}
+			}
+		}
+	}
+
 }
diff --git a/src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.java b/src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.java
index bd13b4a..941227a 100644
--- a/src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.java
+++ b/src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.java
@@ -114,4 +114,11 @@
 	 * @return
 	 */
 	List<ExamScore> getExamScoreLists();
+
+	/**
+	 * 查询考试成绩
+	 * @param time
+	 * @return
+	 */
+	List<ExamScore> getExamScoreListByTime(@Param("time") String time);
 }
diff --git a/src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.xml b/src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.xml
index 579cd4b..3b3fa30 100644
--- a/src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.xml
+++ b/src/main/java/org/springblade/modules/exam/mapper/ExamScoreMapper.xml
@@ -532,5 +532,10 @@
         SELECT * from exam_score where date_format(exam_time,'%Y-%M-%d') = date_format(now(),'%Y-%M-%d')
     </select>
 
+    <!--查询考试成绩按时间-->
+    <select id="getExamScoreListByTime" resultType="org.springblade.modules.exam.entity.ExamScore">
+        SELECT * from exam_score where date_format(exam_time,'%Y-%M-%d') = date_format(#{time},'%Y-%M-%d')
+    </select>
+
 
 </mapper>
diff --git a/src/main/java/org/springblade/modules/exam/service/ExamScoreService.java b/src/main/java/org/springblade/modules/exam/service/ExamScoreService.java
index fe6bbcb..7de75ad 100644
--- a/src/main/java/org/springblade/modules/exam/service/ExamScoreService.java
+++ b/src/main/java/org/springblade/modules/exam/service/ExamScoreService.java
@@ -111,4 +111,11 @@
 	 * @return
 	 */
 	List<ExamScore> getExamScoreList();
+
+	/**
+	 * 查询考试成绩
+	 * @param time
+	 * @return
+	 */
+	List<ExamScore> getExamScoreListByTime(String time);
 }
diff --git a/src/main/java/org/springblade/modules/exam/service/impl/ExamScoreServiceImpl.java b/src/main/java/org/springblade/modules/exam/service/impl/ExamScoreServiceImpl.java
index 77e4c90..20ff85c 100644
--- a/src/main/java/org/springblade/modules/exam/service/impl/ExamScoreServiceImpl.java
+++ b/src/main/java/org/springblade/modules/exam/service/impl/ExamScoreServiceImpl.java
@@ -1148,4 +1148,14 @@
 	public List<ExamScore> getExamScoreList() {
 		return baseMapper.getExamScoreLists();
 	}
+
+	/**
+	 * 查询考试成绩
+	 * @param time
+	 * @return
+	 */
+	@Override
+	public List<ExamScore> getExamScoreListByTime(String time) {
+		return baseMapper.getExamScoreListByTime(time);
+	}
 }
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 92efcbc..bba6501 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -234,6 +234,7 @@
       - /electronRail/**
       - /scheduled/**
       - /rabbitmq/**
+      - /examScore/examScoreSync
 
     #授权认证配置
     auth:

--
Gitblit v1.9.3