xiangpei
2024-07-04 e78a523bf9bc14136c3e09aff3333477dbfa5ea6
考试加时、强制收卷完善
3个文件已修改
21 ■■■■■ 已修改文件
src/main/java/com/ycl/jxkg/domain/form/AddTimeForm.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/server/WebsocketServer.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ycl/jxkg/service/impl/ExamServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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:xp
@@ -21,6 +22,6 @@
    /** 添加多少时间:秒 */
    @NotNull(message = "请填写加时秒数")
    private Integer addTimeSecond;
    private BigDecimal addTimeM;
}
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);
    }
}
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("该学员不在线,无法执行该操作");
        }
        // 发送websocket消息
        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("该学员不在线,无法执行该操作");
        }
        // 发送websocket消息
        websocketServer.sendOneMessage(form.getUserId(), JSON.toJSONString(form));
        return Result.ok("操作成功");