|
@@ -283,6 +283,7 @@ public class MqOeLogicServiceImpl implements MqOeLogicService {
|
|
clientWebsocketId = tOeExamRecord.getClientWebsocketId();
|
|
clientWebsocketId = tOeExamRecord.getClientWebsocketId();
|
|
}
|
|
}
|
|
Map<String, Object> prop = mqDto.getProperties();
|
|
Map<String, Object> prop = mqDto.getProperties();
|
|
|
|
+ prop.put(SystemConstant.RECORD_ID, recordId);
|
|
if (Objects.nonNull(clientWebsocketId) && Objects.nonNull(webSocketMap.get(clientWebsocketId))) {
|
|
if (Objects.nonNull(clientWebsocketId) && Objects.nonNull(webSocketMap.get(clientWebsocketId))) {
|
|
WebSocketOeServer webSocketOeServer = webSocketMap.get(clientWebsocketId);
|
|
WebSocketOeServer webSocketOeServer = webSocketMap.get(clientWebsocketId);
|
|
ExamRecordStatusEnum examRecordStatusEnum = ExamRecordCacheUtil.getStatus(recordId);
|
|
ExamRecordStatusEnum examRecordStatusEnum = ExamRecordCacheUtil.getStatus(recordId);
|
|
@@ -308,9 +309,8 @@ public class MqOeLogicServiceImpl implements MqOeLogicService {
|
|
websocketDto = new WebsocketDto(WebsocketTypeEnum.EXAM_STOP.name(), prop);
|
|
websocketDto = new WebsocketDto(WebsocketTypeEnum.EXAM_STOP.name(), prop);
|
|
webSocketOeServer.sendMessage(websocketDto);
|
|
webSocketOeServer.sendMessage(websocketDto);
|
|
SystemConstant.clientMonitorStatusStop(recordId);
|
|
SystemConstant.clientMonitorStatusStop(recordId);
|
|
- Map<String, Object> properties = mqDto.getProperties();
|
|
|
|
- if (Objects.nonNull(properties) && properties.size() > 0) {
|
|
|
|
- Boolean removeWebsocket = (Boolean) properties.get(SystemConstant.REMOVE_WEBSOCKET);
|
|
|
|
|
|
+ if (Objects.nonNull(prop) && prop.size() > 0) {
|
|
|
|
+ Boolean removeWebsocket = (Boolean) prop.get(SystemConstant.REMOVE_WEBSOCKET);
|
|
if (Objects.nonNull(removeWebsocket) && removeWebsocket) {
|
|
if (Objects.nonNull(removeWebsocket) && removeWebsocket) {
|
|
WebSocketOeServer.close(webSocketOeServer);
|
|
WebSocketOeServer.close(webSocketOeServer);
|
|
}
|
|
}
|
|
@@ -433,6 +433,8 @@ public class MqOeLogicServiceImpl implements MqOeLogicService {
|
|
tOeExamRecord = Objects.isNull(tOeExamRecord) ? SystemConstant.getExamRecord(recordId) : tOeExamRecord;
|
|
tOeExamRecord = Objects.isNull(tOeExamRecord) ? SystemConstant.getExamRecord(recordId) : tOeExamRecord;
|
|
mobileFirstWebsocketId = tOeExamRecord.getMobileFirstWebsocketId();
|
|
mobileFirstWebsocketId = tOeExamRecord.getMobileFirstWebsocketId();
|
|
}
|
|
}
|
|
|
|
+ Map<String, Object> prop = mqDto.getProperties();
|
|
|
|
+ prop.put(SystemConstant.RECORD_ID, recordId);
|
|
if (Objects.nonNull(mobileFirstWebsocketId) && Objects.nonNull(webSocketMap.get(mobileFirstWebsocketId))) {
|
|
if (Objects.nonNull(mobileFirstWebsocketId) && Objects.nonNull(webSocketMap.get(mobileFirstWebsocketId))) {
|
|
WebSocketMobileServer webSocketFirstMobileServer = webSocketMap.get(mobileFirstWebsocketId);
|
|
WebSocketMobileServer webSocketFirstMobileServer = webSocketMap.get(mobileFirstWebsocketId);
|
|
if (Objects.nonNull(examRecordStatusEnum)
|
|
if (Objects.nonNull(examRecordStatusEnum)
|
|
@@ -442,12 +444,11 @@ public class MqOeLogicServiceImpl implements MqOeLogicService {
|
|
switch (tag.toUpperCase()) {
|
|
switch (tag.toUpperCase()) {
|
|
case "EXAM_STOP":
|
|
case "EXAM_STOP":
|
|
if (!Objects.equals(ExamRecordStatusEnum.ANSWERING, examRecordStatusEnum)) {
|
|
if (!Objects.equals(ExamRecordStatusEnum.ANSWERING, examRecordStatusEnum)) {
|
|
- websocketDto = new WebsocketDto(WebsocketTypeEnum.EXAM_STOP.name(), mqDto.getProperties());
|
|
|
|
|
|
+ websocketDto = new WebsocketDto(WebsocketTypeEnum.EXAM_STOP.name(), prop);
|
|
webSocketFirstMobileServer.sendMessage(websocketDto);
|
|
webSocketFirstMobileServer.sendMessage(websocketDto);
|
|
SystemConstant.mobileMonitorStatusStop(studentId, recordId, false);
|
|
SystemConstant.mobileMonitorStatusStop(studentId, recordId, false);
|
|
- Map<String, Object> properties = mqDto.getProperties();
|
|
|
|
- if (Objects.nonNull(properties) && properties.size() > 0) {
|
|
|
|
- Boolean removeWebsocket = (Boolean) properties.get(SystemConstant.REMOVE_WEBSOCKET);
|
|
|
|
|
|
+ if (Objects.nonNull(prop) && prop.size() > 0) {
|
|
|
|
+ Boolean removeWebsocket = (Boolean) prop.get(SystemConstant.REMOVE_WEBSOCKET);
|
|
if (Objects.nonNull(removeWebsocket) && removeWebsocket) {
|
|
if (Objects.nonNull(removeWebsocket) && removeWebsocket) {
|
|
WebSocketMobileServer.close(webSocketFirstMobileServer);
|
|
WebSocketMobileServer.close(webSocketFirstMobileServer);
|
|
}
|
|
}
|
|
@@ -458,7 +459,7 @@ public class MqOeLogicServiceImpl implements MqOeLogicService {
|
|
if (!Objects.equals(ExamRecordStatusEnum.PERSISTED, examRecordStatusEnum)
|
|
if (!Objects.equals(ExamRecordStatusEnum.PERSISTED, examRecordStatusEnum)
|
|
&& !Objects.equals(ExamRecordStatusEnum.FINISHED, examRecordStatusEnum)
|
|
&& !Objects.equals(ExamRecordStatusEnum.FINISHED, examRecordStatusEnum)
|
|
&& !Objects.equals(ExamRecordStatusEnum.JUNK, examRecordStatusEnum)) {
|
|
&& !Objects.equals(ExamRecordStatusEnum.JUNK, examRecordStatusEnum)) {
|
|
- websocketDto = new WebsocketDto(WebsocketTypeEnum.EXAM_START.name(), mqDto.getProperties());
|
|
|
|
|
|
+ websocketDto = new WebsocketDto(WebsocketTypeEnum.EXAM_START.name(), prop);
|
|
webSocketFirstMobileServer.sendMessage(websocketDto);
|
|
webSocketFirstMobileServer.sendMessage(websocketDto);
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
@@ -489,12 +490,11 @@ public class MqOeLogicServiceImpl implements MqOeLogicService {
|
|
switch (tag.toUpperCase()) {
|
|
switch (tag.toUpperCase()) {
|
|
case "EXAM_STOP":
|
|
case "EXAM_STOP":
|
|
if (!Objects.equals(ExamRecordStatusEnum.ANSWERING, examRecordStatusEnum)) {
|
|
if (!Objects.equals(ExamRecordStatusEnum.ANSWERING, examRecordStatusEnum)) {
|
|
- websocketDto = new WebsocketDto(WebsocketTypeEnum.EXAM_STOP.name(), mqDto.getProperties());
|
|
|
|
|
|
+ websocketDto = new WebsocketDto(WebsocketTypeEnum.EXAM_STOP.name(), prop);
|
|
webSocketSecondMobileServer.sendMessage(websocketDto);
|
|
webSocketSecondMobileServer.sendMessage(websocketDto);
|
|
SystemConstant.mobileMonitorStatusStop(studentId, recordId, false);
|
|
SystemConstant.mobileMonitorStatusStop(studentId, recordId, false);
|
|
- Map<String, Object> properties = mqDto.getProperties();
|
|
|
|
- if (Objects.nonNull(properties) && properties.size() > 0) {
|
|
|
|
- Boolean mobileRemoveWebsocket = (Boolean) properties.get(SystemConstant.REMOVE_WEBSOCKET);
|
|
|
|
|
|
+ if (Objects.nonNull(prop) && prop.size() > 0) {
|
|
|
|
+ Boolean mobileRemoveWebsocket = (Boolean) prop.get(SystemConstant.REMOVE_WEBSOCKET);
|
|
if (Objects.nonNull(mobileRemoveWebsocket) && mobileRemoveWebsocket) {
|
|
if (Objects.nonNull(mobileRemoveWebsocket) && mobileRemoveWebsocket) {
|
|
WebSocketMobileServer.close(webSocketSecondMobileServer);
|
|
WebSocketMobileServer.close(webSocketSecondMobileServer);
|
|
}
|
|
}
|
|
@@ -505,7 +505,7 @@ public class MqOeLogicServiceImpl implements MqOeLogicService {
|
|
if (!Objects.equals(ExamRecordStatusEnum.PERSISTED, examRecordStatusEnum)
|
|
if (!Objects.equals(ExamRecordStatusEnum.PERSISTED, examRecordStatusEnum)
|
|
&& !Objects.equals(ExamRecordStatusEnum.FINISHED, examRecordStatusEnum)
|
|
&& !Objects.equals(ExamRecordStatusEnum.FINISHED, examRecordStatusEnum)
|
|
&& !Objects.equals(ExamRecordStatusEnum.JUNK, examRecordStatusEnum)) {
|
|
&& !Objects.equals(ExamRecordStatusEnum.JUNK, examRecordStatusEnum)) {
|
|
- websocketDto = new WebsocketDto(WebsocketTypeEnum.EXAM_START.name(), mqDto.getProperties());
|
|
|
|
|
|
+ websocketDto = new WebsocketDto(WebsocketTypeEnum.EXAM_START.name(), prop);
|
|
webSocketSecondMobileServer.sendMessage(websocketDto);
|
|
webSocketSecondMobileServer.sendMessage(websocketDto);
|
|
}
|
|
}
|
|
break;
|
|
break;
|