From e78a523bf9bc14136c3e09aff3333477dbfa5ea6 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期四, 04 七月 2024 15:38:16 +0800
Subject: [PATCH] 考试加时、强制收卷完善
---
src/main/java/com/ycl/jxkg/domain/form/AddTimeForm.java | 3 ++-
src/main/java/com/ycl/jxkg/server/WebsocketServer.java | 12 ++++++++++++
src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java | 6 ++++++
3 files changed, 20 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/ycl/jxkg/domain/form/AddTimeForm.java b/src/main/java/com/ycl/jxkg/domain/form/AddTimeForm.java
index 1e17bf1..3bef3ba 100644
--- a/src/main/java/com/ycl/jxkg/domain/form/AddTimeForm.java
+++ b/src/main/java/com/ycl/jxkg/domain/form/AddTimeForm.java
@@ -3,6 +3,7 @@
import lombok.Data;
import javax.validation.constraints.NotNull;
+import java.math.BigDecimal;
/**
* @author锛歺p
@@ -21,6 +22,6 @@
/** 娣诲姞澶氬皯鏃堕棿锛氱 */
@NotNull(message = "璇峰~鍐欏姞鏃剁鏁�")
- private Integer addTimeSecond;
+ private BigDecimal addTimeM;
}
diff --git a/src/main/java/com/ycl/jxkg/server/WebsocketServer.java b/src/main/java/com/ycl/jxkg/server/WebsocketServer.java
index 9886607..2c3a644 100644
--- a/src/main/java/com/ycl/jxkg/server/WebsocketServer.java
+++ b/src/main/java/com/ycl/jxkg/server/WebsocketServer.java
@@ -20,6 +20,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.concurrent.CopyOnWriteArraySet;
/**
@@ -133,4 +134,15 @@
}
}
+ /**
+ * 鏍¢獙鐢ㄦ埛鏄惁鍦ㄧ嚎
+ *
+ * @param userId
+ * @return
+ */
+ public Boolean checkUserOnline(Integer userId) {
+ Session session = SESSION_POOL.get(userId);
+ return Objects.nonNull(session);
+ }
+
}
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 03ff2fa..1139c33 100644
--- a/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
+++ b/src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java
@@ -885,6 +885,9 @@
WebsocketDataVO websocket = new WebsocketDataVO();
websocket.setCommend(WebsocketCommendEnum.DELAYED.getCommend());
websocket.setData(form);
+ if (! websocketServer.checkUserOnline(form.getUserId())) {
+ throw new RuntimeException("璇ュ鍛樹笉鍦ㄧ嚎锛屾棤娉曟墽琛岃鎿嶄綔");
+ }
// 鍙戦�亀ebsocket娑堟伅
websocketServer.sendOneMessage(form.getUserId(), JSON.toJSONString(form));
return Result.ok("鎿嶄綔鎴愬姛");
@@ -895,6 +898,9 @@
WebsocketDataVO websocket = new WebsocketDataVO();
websocket.setCommend(WebsocketCommendEnum.FORCE_SUBMIT.getCommend());
websocket.setData(form);
+ if (! websocketServer.checkUserOnline(form.getUserId())) {
+ throw new RuntimeException("璇ュ鍛樹笉鍦ㄧ嚎锛屾棤娉曟墽琛岃鎿嶄綔");
+ }
// 鍙戦�亀ebsocket娑堟伅
websocketServer.sendOneMessage(form.getUserId(), JSON.toJSONString(form));
return Result.ok("鎿嶄綔鎴愬姛");
--
Gitblit v1.8.0