From 140407b8c3d62442025f893908c5934b9902d32d Mon Sep 17 00:00:00 2001 From: "YOHO\\20373" <2037305722@qq.com> Date: Wed, 11 Jun 2025 21:51:54 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BF=AE=E6=94=B9=E3=80=91mysql?= =?UTF-8?q?=E5=88=A4=E5=88=86txt=E5=8A=A0=E4=B8=8A=E7=AD=94=E6=A1=88?= =?UTF-8?q?=E8=AF=AD=E5=8F=A5=EF=BC=8C=E6=96=87=E4=BB=B6=E5=A4=B9=E5=87=BA?= =?UTF-8?q?=E9=A2=98=E5=8A=A0=E4=B8=8A=E5=88=9D=E5=A7=8B=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E5=A4=B9=E5=9B=9E=E6=98=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../admin/getpoints/vo/FilePointsVo.java | 1 + .../getpoints/ExamGetPointsServiceImpl.java | 2 ++ .../service/mysql/MysqlServericeImpl.java | 23 +++++++++++-------- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/getpoints/vo/FilePointsVo.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/getpoints/vo/FilePointsVo.java index 0d8647ff..45e0e811 100644 --- a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/getpoints/vo/FilePointsVo.java +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/admin/getpoints/vo/FilePointsVo.java @@ -12,5 +12,6 @@ import java.util.List; @NoArgsConstructor public class FilePointsVo { List nodeList; + List stuList; List examQuestionAnswerList; } diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/service/getpoints/ExamGetPointsServiceImpl.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/service/getpoints/ExamGetPointsServiceImpl.java index 17f91725..ce1638f7 100644 --- a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/service/getpoints/ExamGetPointsServiceImpl.java +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/service/getpoints/ExamGetPointsServiceImpl.java @@ -66,6 +66,7 @@ public class ExamGetPointsServiceImpl implements ExamGetPointsService{ File folderAnswer = new File(answerFilePath); List nodeList = ExamGetPointsServiceImpl.buildFileNodeTree(folderAnswer); + List stuList = ExamGetPointsServiceImpl.buildFileNodeTree(folderStu); System.out.println(nodeList); List answerList = new ArrayList<>(); @@ -104,6 +105,7 @@ public class ExamGetPointsServiceImpl implements ExamGetPointsService{ FilePointsVo filePointsVo=new FilePointsVo(); filePointsVo.setNodeList(nodeList); + filePointsVo.setStuList(stuList); filePointsVo.setExamQuestionAnswerList(answerList); return filePointsVo; } diff --git a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/service/mysql/MysqlServericeImpl.java b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/service/mysql/MysqlServericeImpl.java index e0c9d734..30786903 100644 --- a/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/service/mysql/MysqlServericeImpl.java +++ b/exam-module-judgement/exam-module-judgement-biz/src/main/java/pc/exam/pp/module/judgement/controller/service/mysql/MysqlServericeImpl.java @@ -364,6 +364,7 @@ public class MysqlServericeImpl implements IMysqlServerice { appendToFile(answerLogPath, "==================删除语句=================="); List examMysqlKeywordList =new ArrayList<>(); String delStatement = entry.getValue(); + appendToFile(answerLogPath, "正确语句: " + delStatement); delStatement = delStatement.trim().replaceAll(";+\\s*$", ""); String answerId =null; String sql2 = resultStu.get(entry.getKey()); @@ -383,11 +384,11 @@ public class MysqlServericeImpl implements IMysqlServerice { String tableName = matcher.group(1).trim(); String whereClause = matcher.group(2).trim(); MysqlServericeImpl.DeleteInfo deleteInfo = new MysqlServericeImpl.DeleteInfo(tableName, whereClause); - appendToFile(answerLogPath, "提取出的表名: " + deleteInfo.tableName); - appendToFile(answerLogPath, "提取出的条件: " + deleteInfo.whereClause); +// appendToFile(answerLogPath, "提取出的表名: " + deleteInfo.tableName); +// appendToFile(answerLogPath, "提取出的条件: " + deleteInfo.whereClause); // 构造验证 SQL String verifySql = "SELECT COUNT(*) FROM " + deleteInfo.tableName + " WHERE " + deleteInfo.whereClause; - appendToFile(answerLogPath, "验证 SQL: " + verifySql); +// appendToFile(answerLogPath, "验证 SQL: " + verifySql); //查找正确答案的 // try (Connection conn = DriverManager.getConnection(newDbUrl, user, password); // Statement stmt = conn.createStatement()) { @@ -436,6 +437,7 @@ public class MysqlServericeImpl implements IMysqlServerice { appendToFile(answerLogPath, "==================更新语句=================="); List examMysqlKeywordList =new ArrayList<>(); String sql1 = entry.getValue(); + appendToFile(answerLogPath, "正确语句: " + sql1); String answerId=null; for (ExamQuestionAnswer examQuestionAnswer : examQuestionAnswers) { if (normalize(examQuestionAnswer.getContent()).equals(normalize(entry.getValue()))) { @@ -480,7 +482,7 @@ public class MysqlServericeImpl implements IMysqlServerice { } String sql1 = entry.getValue(); - + appendToFile(answerLogPath, "正确语句: " + sql1); String sql2 = resultStu.get(entry.getKey()); @@ -544,6 +546,7 @@ public class MysqlServericeImpl implements IMysqlServerice { } String sql1 = entry.getValue(); + appendToFile(answerLogPath, "正确语句: " + sql1); String sql2 = resultStu.get(entry.getKey()); // 正则表达式,用于匹配 "VIEW" 后面的视图名称 String regex = "(?<=VIEW\\s)([\\w`_]+)"; @@ -582,12 +585,12 @@ public class MysqlServericeImpl implements IMysqlServerice { } // 执行查询,获取视图1的结果 - appendToFile(answerLogPath, "执行正确答案视图语句" + viewName1 + " 的查询结果:"); + appendToFile(answerLogPath, "执行正确答案视图语句的查询结果:"); String sql3 = "SELECT * FROM " + viewName1; List> result1 = executeQuery(stmt, sql3); printResult(result1); // 执行查询,获取视图2的结果 - appendToFile(answerLogPath, "执行考生视图语句" + viewName2 + " 的查询结果:"); + appendToFile(answerLogPath, "执行考生视图语句的查询结果:"); String sql4 = "SELECT * FROM " + viewName2; List> result2 = executeQuery(stmt, sql4); printResult(result2); @@ -628,7 +631,7 @@ public class MysqlServericeImpl implements IMysqlServerice { } appendToFile(answerLogPath, "==================储存过程=================="); String sql1 = entry.getValue(); - + appendToFile(answerLogPath, "正确语句: " + sql1); String sql2 = resultStu.get(entry.getKey()); //提取call语句 List extractCallStatements = extractCallStatements(sql1); @@ -707,7 +710,7 @@ public class MysqlServericeImpl implements IMysqlServerice { } String sql1 = entry.getValue(); - + appendToFile(answerLogPath, "正确语句: " + sql1); String sql2 = resultStu.get(entry.getKey()); // 清洗触发器语句(去除注释等) @@ -794,7 +797,7 @@ public class MysqlServericeImpl implements IMysqlServerice { } - appendToFile(answerLogPath, "✅语句" + sql2 + "正确,语句得分权值:" + scoreRateStr + ",得分" + singleScore); + appendToFile(answerLogPath, "✅学生语句" + sql2 + "正确,语句得分权值:" + scoreRateStr + ",得分" + singleScore); } catch (NumberFormatException e) { System.err.println("无效的totalKeyScore值:" + totalKeyScore); } @@ -860,7 +863,7 @@ public class MysqlServericeImpl implements IMysqlServerice { ((double) totalScoreRate / totalKeyScoreInt) * singleScore ).setScale(2, RoundingMode.HALF_UP).doubleValue(); - appendToFile(answerLogPath,"❌语句"+sql+"不正确,语句权值:"+scoreRateStr+",关键权值:"+totalKeyScoreInt+",答对得分点为:"+matchedKeywords+",答对关键得分权值"+ totalScoreRate+ ",得分" + finalRoundedScore); + appendToFile(answerLogPath,"❌学生语句"+sql+"不正确,语句权值:"+scoreRateStr+",关键权值:"+totalKeyScoreInt+",答对得分点为:"+matchedKeywords+",答对关键得分权值"+ totalScoreRate+ ",得分" + finalRoundedScore); return finalRoundedScore; }