From 926f55cd895aa62d079ef18fee964d81bfae005e Mon Sep 17 00:00:00 2001
From: lohir <3399054449@qq.com>
Date: 星期三, 16 十月 2024 16:31:09 +0800
Subject: [PATCH] bug
---
src/main/java/com/ycl/jxkg/enums/general/ExamStatusEnum.java | 1
src/main/java/com/ycl/jxkg/service/ExamService.java | 16 ++++++++
src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java | 45 ++++++++++++++++++++++
src/main/java/com/ycl/jxkg/controller/admin/ExamController.java | 13 ++++++
4 files changed, 75 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/ycl/jxkg/controller/admin/ExamController.java b/src/main/java/com/ycl/jxkg/controller/admin/ExamController.java
index 9e46068..4729816 100644
--- a/src/main/java/com/ycl/jxkg/controller/admin/ExamController.java
+++ b/src/main/java/com/ycl/jxkg/controller/admin/ExamController.java
@@ -124,4 +124,17 @@
return examService.forceSubmit(form);
}
+ @PutMapping("/cancel/{id}")
+ @ApiOperation(value = "浣滃簾", notes = "浣滃簾")
+ @PreAuthorize("hasAuthority('exam:cacel')")
+ public Result cancel(@PathVariable("id") Integer id) {
+ return examService.cancel(id);
+ }
+
+ @PutMapping("/recover/{id}")
+ @ApiOperation(value = "鎭㈠姝e父", notes = "鎭㈠姝e父")
+ @PreAuthorize("hasAuthority('exam:recover')")
+ public Result recover(@PathVariable("id") Integer id) {
+ return examService.recover(id);
+ }
}
diff --git a/src/main/java/com/ycl/jxkg/enums/general/ExamStatusEnum.java b/src/main/java/com/ycl/jxkg/enums/general/ExamStatusEnum.java
index 03037d0..5598d19 100644
--- a/src/main/java/com/ycl/jxkg/enums/general/ExamStatusEnum.java
+++ b/src/main/java/com/ycl/jxkg/enums/general/ExamStatusEnum.java
@@ -19,6 +19,7 @@
NOT_START("not_start", "鏈紑濮�"),
ING("ing", "杩涜涓�"),
FINISHED("finished", "宸茬粨鏉�"),
+ CANCEL("cancel", "宸蹭綔搴�"),
;
@EnumValue
diff --git a/src/main/java/com/ycl/jxkg/service/ExamService.java b/src/main/java/com/ycl/jxkg/service/ExamService.java
index 40a9857..b07b8b2 100644
--- a/src/main/java/com/ycl/jxkg/service/ExamService.java
+++ b/src/main/java/com/ycl/jxkg/service/ExamService.java
@@ -150,5 +150,21 @@
Result forceSubmit(ForceSubmitForm form);
+ /**
+ * 浣滃簾
+ *
+ * @param id
+ * @return {@link Result }
+ * @author
+ */
+ Result cancel(Integer id);
+ /**
+ * 鎭㈠
+ *
+ * @param id
+ * @return {@link Result }
+ * @author
+ */
+ Result recover(Integer id);
}
diff --git a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java b/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
index 904e0e2..4997be2 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
@@ -3,9 +3,11 @@
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
+import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ycl.jxkg.base.Result;
import com.ycl.jxkg.base.SystemCode;
@@ -30,6 +32,7 @@
import com.ycl.jxkg.enums.ExamPaperTypeEnum;
import com.ycl.jxkg.enums.QuestionTypeEnum;
import com.ycl.jxkg.enums.WebsocketCommendEnum;
+import com.ycl.jxkg.enums.general.ClassesStatusEnum;
import com.ycl.jxkg.enums.general.ExamStatusEnum;
import com.ycl.jxkg.enums.general.ExamSubmitTempStatusEnum;
import com.ycl.jxkg.mapper.*;
@@ -947,4 +950,46 @@
websocketServer.sendOneMessage(form.getUserId(), JSON.toJSONString(websocket));
return Result.ok("鎿嶄綔鎴愬姛");
}
+
+ /**
+ * 浣滃簾
+ *
+ * @param examId
+ * @return {@link Result }
+ * @author
+ */
+ @Override
+ public Result cancel(Integer id) {
+ new LambdaUpdateChainWrapper<>(examMapper)
+ .eq(Exam::getId, id)
+ .set(Exam::getStatus, ExamStatusEnum.CANCEL)
+ .update();
+ return Result.ok("浣滃簾鎴愬姛");
+ }
+
+ @Override
+ public Result recover(Integer id) {
+ // 鍏堟煡璇㈠綋鍓嶈�冭瘯璁板綍鐨勮缁嗕俊鎭�
+ Exam examInfo = new LambdaQueryChainWrapper<>(examMapper)
+ .eq(Exam::getId, id)
+ .one();
+ // 纭畾鎭㈠鍚庡綋鍓嶈�冭瘯璁板綍鐨勭姸鎬�
+ Date currentTime = new Date();
+ Date startTime = examInfo.getStartTime();
+ Date endTime = examInfo.getEndTime();
+ if (currentTime.before(startTime)) {
+ examInfo.setStatus(ExamStatusEnum.NOT_START);
+ } else if (currentTime.after(startTime) && currentTime.before(endTime)) {
+ examInfo.setStatus(ExamStatusEnum.ING);
+ } else {
+ examInfo.setStatus(ExamStatusEnum.FINISHED);
+ }
+ // 淇敼褰撳墠鐨勮�冭瘯鐘舵��
+ new LambdaUpdateChainWrapper<>(examMapper)
+ .eq(Exam::getId, id)
+ .set(Exam::getStatus, examInfo.getStatus())
+ .update();
+ // 杩樺師鐝骇鐨勮�冭瘯淇℃伅
+ return Result.ok("鑰冭瘯璁板綍宸茬粡鎭㈠姝e父");
+ }
}
--
Gitblit v1.8.0