From 24aed3ad1b13355cc587378c0fa28a77f1e776e6 Mon Sep 17 00:00:00 2001
From: lohir <3399054449@qq.com>
Date: 星期四, 17 十月 2024 15:16:59 +0800
Subject: [PATCH] 解决考试时间创建和修改会向后推8小时的问题

---
 src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java |   19 ++++++++++---------
 1 files changed, 10 insertions(+), 9 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 4997be2..becc1df 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
@@ -91,6 +91,8 @@
     @Override
     public Result add(ExamForm form) {
         Exam entity = ExamForm.getEntityByForm(form, null);
+        form.getStartTime().setTime(form.getStartTime().getTime() - 8 * 60 * 60 * 1000);
+        form.getEndTime().setTime(form.getEndTime().getTime() - 8 * 60 * 60 * 1000);
         entity.setStatus(ExamStatusEnum.getStatusByTime(form.getStartTime(), form.getEndTime(), null));
         entity.setTeacherId(webContext.getCurrentUser().getId());
         // 璁剧疆涔愯閿佺増鏈�
@@ -116,8 +118,11 @@
         if (!ExamStatusEnum.NOT_START.equals(entity.getStatus())) {
             throw new RuntimeException("鍙兘淇敼杩樻湭寮�濮嬬殑鑰冭瘯");
         }
+        // 灏嗗紑濮嬭�冭瘯鏃堕棿鎯冲墠鎺�8灏忔椂
+        form.getStartTime().setTime(form.getStartTime().getTime() - 8 * 60 * 60 * 1000);
+        form.getEndTime().setTime(form.getEndTime().getTime() - 8 * 60 * 60 * 1000);
         BeanUtils.copyProperties(form, entity);
-        entity.setStatus(ExamStatusEnum.getStatusByTime(form.getStartTime(), form.getEndTime(), null));
+        entity.setStatus(ExamStatusEnum.getStatusByTime(form.getStartTime(), form.getEndTime(), new Date()));
         // 濡傛灉淇敼鎴愬姛鍙戦�乵q娑堟伅
         if (baseMapper.updateById(entity) > 0) {
             this.sendMQ(entity, entity.getUpdateVersion());
@@ -214,6 +219,7 @@
                 item.setExamPaperId(null);
             }
         });
+        //
         return Result.ok().data(page.getRecords()).total(page.getTotal());
     }
 
@@ -954,7 +960,7 @@
     /**
      * 浣滃簾
      *
-     * @param examId
+     * @param id
      * @return {@link Result }
      * @author
      */
@@ -977,13 +983,8 @@
         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);
-        }
+        ExamStatusEnum statusByTime = ExamStatusEnum.getStatusByTime(startTime, endTime, currentTime);
+        examInfo.setStatus(statusByTime);
         // 淇敼褰撳墠鐨勮�冭瘯鐘舵��
         new LambdaUpdateChainWrapper<>(examMapper)
                 .eq(Exam::getId, id)

--
Gitblit v1.8.0