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/service/impl/ExamServiceImpl.java |   45 +++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 45 insertions(+), 0 deletions(-)

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