diff --git a/AES-front/src/views/user/report-submit/components/report-actions.vue b/AES-front/src/views/user/report-submit/components/report-actions.vue index 41dadcc..1576c1f 100644 --- a/AES-front/src/views/user/report-submit/components/report-actions.vue +++ b/AES-front/src/views/user/report-submit/components/report-actions.vue @@ -118,8 +118,7 @@ const onWithdraw = () => { //撤回提交 emit('clickWithdraw'); ElMessage.success('撤回成功!'); } catch (error) { - console.error("Failed to Withdraw:", error); - ElMessage.error('撤回时发生错误!'); + } }).catch(() => { // 用户取消撤回 diff --git a/AES/src/main/java/com/example/aes/problem/controller/ProblemController.java b/AES/src/main/java/com/example/aes/problem/controller/ProblemController.java index aa7371e..fa82625 100644 --- a/AES/src/main/java/com/example/aes/problem/controller/ProblemController.java +++ b/AES/src/main/java/com/example/aes/problem/controller/ProblemController.java @@ -466,8 +466,15 @@ public class ProblemController { String UserId = decodeToken.getUserId(); int userId = Integer.parseInt(UserId); submitReport.setStudentId(userId); - if (problemServiceI.findReportSubmitted(submitReport)) { + String submissionstatus=problemServiceI.findReportSubmittedStatus(submitReport); + if(submissionstatus.equals("2")){ + return RespBean.error("实验报告已撤回!"); + } + else if(submissionstatus.equals("0")){ + return RespBean.error("尚未提交实验报告!"); + } + else{ boolean result = problemServiceI.withdrawSubmitInfo(submitReport); if (result) { return RespBean.ok("撤回信息更新成功"); @@ -475,6 +482,7 @@ public class ProblemController { return RespBean.error("撤回信息更新失败"); } } + } else{ return RespBean.error("未找到该学生提交信息!"); } diff --git a/AES/src/main/java/com/example/aes/problem/dao/SubmitReportDaoI.java b/AES/src/main/java/com/example/aes/problem/dao/SubmitReportDaoI.java index b2f9d7d..fe1a0fe 100644 --- a/AES/src/main/java/com/example/aes/problem/dao/SubmitReportDaoI.java +++ b/AES/src/main/java/com/example/aes/problem/dao/SubmitReportDaoI.java @@ -24,4 +24,5 @@ public interface SubmitReportDaoI extends BaseDaoI { public boolean updateReportSubmitted(SubmitReport submitReport); public boolean updateReportSubmittedForSubmission(SubmitReport submitReport); public boolean withdrawReportSubmitted(SubmitReport submitReport); + public String getReportSubmittedStatus(SubmitReport submitReport); } diff --git a/AES/src/main/java/com/example/aes/problem/dao/impl/SubmitReportDaoImpl.java b/AES/src/main/java/com/example/aes/problem/dao/impl/SubmitReportDaoImpl.java index 36bf4a6..1711d10 100644 --- a/AES/src/main/java/com/example/aes/problem/dao/impl/SubmitReportDaoImpl.java +++ b/AES/src/main/java/com/example/aes/problem/dao/impl/SubmitReportDaoImpl.java @@ -357,4 +357,24 @@ public class SubmitReportDaoImpl extends BaseDaoImpl implements Su return false; } } + + @Override + public String getReportSubmittedStatus(SubmitReport submitReport) { + Session session = this.getCurrentSession(); + String submissionStatus = null; // 默认为 null,表示没有找到状态或发生错误 + try { + // 构建查询语句 + String hql = "SELECT submissionStatus FROM SubmitReport WHERE problemId = :problemId AND studentId = :studentId AND adminuserId = :adminuserId"; + + Query query = session.createQuery(hql, String.class); + query.setParameter("problemId", submitReport.getProblemId()); + query.setParameter("studentId", submitReport.getStudentId()); + query.setParameter("adminuserId", submitReport.getAdminuserId()); + + submissionStatus = query.uniqueResult(); + } catch (Exception e) { + e.printStackTrace(); + } + return submissionStatus; + } } \ No newline at end of file diff --git a/AES/src/main/java/com/example/aes/problem/service/Impl/ProblemServiceImpl.java b/AES/src/main/java/com/example/aes/problem/service/Impl/ProblemServiceImpl.java index af9578c..0251658 100644 --- a/AES/src/main/java/com/example/aes/problem/service/Impl/ProblemServiceImpl.java +++ b/AES/src/main/java/com/example/aes/problem/service/Impl/ProblemServiceImpl.java @@ -510,6 +510,11 @@ public int redoReport(PMReviewMessage pmReviewMessage){ return studentSubmitDao.withdrawReportSubmitted(submitReport); } + @Override + public String findReportSubmittedStatus(SubmitReport submitReport) { + return studentSubmitDao.getReportSubmittedStatus(submitReport); + } + @Override public int editPostProblem(int classId, int problemId,LocalDateTime startTime,LocalDateTime endTime,boolean allow){ diff --git a/AES/src/main/java/com/example/aes/problem/service/ProblemServiceI.java b/AES/src/main/java/com/example/aes/problem/service/ProblemServiceI.java index 4e6139a..e013ffb 100644 --- a/AES/src/main/java/com/example/aes/problem/service/ProblemServiceI.java +++ b/AES/src/main/java/com/example/aes/problem/service/ProblemServiceI.java @@ -61,4 +61,5 @@ public interface ProblemServiceI { boolean updateSubmitInfoToProps(SubmitReport submitReport);//学生更新报告信息(保存,之前保存过) boolean updateSubmitInfoForSubmission(SubmitReport submitReport);//学生提交报告 boolean withdrawSubmitInfo(SubmitReport submitReport);//学生撤回报告 + String findReportSubmittedStatus(SubmitReport submitReport);//查询该学生之前已经提交过该问题的报告状态 }