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 ++++++++++---------
src/main/java/com/ycl/jxkg/domain/form/ExamForm.java | 4 ++--
2 files changed, 12 insertions(+), 11 deletions(-)
diff --git a/src/main/java/com/ycl/jxkg/domain/form/ExamForm.java b/src/main/java/com/ycl/jxkg/domain/form/ExamForm.java
index 7f2b50b..e556192 100644
--- a/src/main/java/com/ycl/jxkg/domain/form/ExamForm.java
+++ b/src/main/java/com/ycl/jxkg/domain/form/ExamForm.java
@@ -46,12 +46,12 @@
@NotNull(message = "寮�濮嬫椂闂翠笉鑳戒负绌�", groups = {Add.class, Update.class})
@ApiModelProperty("寮�濮嬫椂闂�")
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "UTC")
private Date startTime;
@NotNull(message = "缁撴潫鏃堕棿涓嶈兘涓虹┖", groups = {Add.class, Update.class})
@ApiModelProperty("缁撴潫鏃堕棿")
- @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "UTC")
private Date endTime;
public static Exam getEntityByForm(@NonNull ExamForm form, Exam entity) {
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