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