Browse Source

Merge remote-tracking branch 'origin/master'

Joburgess 5 years ago
parent
commit
789f65e30a

+ 2 - 2
edu-auth/edu-auth-server/src/main/java/com/keao/edu/auth/web/controller/SysMessageController.java

@@ -87,9 +87,9 @@ public class SysMessageController extends BaseController {
         if (sysUser == null) {
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }
-        if(!sysUser.getIsSuperAdmin()){
+//        if(!sysUser.getIsSuperAdmin()){
             queryInfo.setUserId(sysUser.getId());
-        }
+//        }
         queryInfo.setType(MessageSendMode.PUSH.getCode());
         PageInfo<SysMessage> pageInfo = sysMessageService.queryPage(queryInfo);
         return succeed(pageInfo);

+ 7 - 7
edu-im/edu-im-api/src/main/java/com/keao/edu/im/api/entity/MemberChangedMessage.java

@@ -16,7 +16,7 @@ public class MemberChangedMessage extends BaseMessage{
     private String userId;
     private String userName;
     private String roomId;
-//    private String appParamJson;
+    private Object appParamJson;
     private Integer waitNum;
     private Integer openFlag;
     private String shieldUserId;
@@ -64,13 +64,13 @@ public class MemberChangedMessage extends BaseMessage{
         this.waitNum = waitNum;
     }
 
-//    public String getAppParamJson() {
-//        return appParamJson;
-//    }
+    public Object getAppParamJson() {
+        return appParamJson;
+    }
 
-//    public void setAppParamJson(String appParamJson) {
-//        this.appParamJson = appParamJson;
-//    }
+    public void setAppParamJson(Object appParamJson) {
+        this.appParamJson = appParamJson;
+    }
 
     public String getWebParamJson() {
         return webParamJson;

+ 2 - 1
edu-im/edu-im-server/src/main/java/com/keao/edu/im/mec/im/IMHelper.java

@@ -16,7 +16,6 @@ import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Component;
 
-import javax.validation.constraints.Size;
 import java.net.HttpURLConnection;
 import java.net.URLEncoder;
 import java.util.List;
@@ -308,6 +307,8 @@ public class IMHelper {
         IMApiResultInfo resultInfo = JSON.parseObject(httpHelper.returnResult(conn, body), IMApiResultInfo.class);
         if(resultInfo.getResultCode() == 10000){
             redisTemplate.opsForValue().set(resultInfo.getRecordId(),registrationId.toString());
+        }else {
+            log.error("直播视频录制失败:body : {},resultInfo : {}",body,resultInfo);
         }
         return resultInfo;
     }

+ 3 - 113
edu-im/edu-im-server/src/main/java/com/keao/edu/im/service/Impl/RoomServiceImpl.java

@@ -211,10 +211,6 @@ public class RoomServiceImpl implements RoomService {
         StudentExamResultApiDto examResult = null;
         if(registrationId != null){
             examResult = eduUserFeignService.getExamResult(registrationId);
-            /*Integer recordFlag = examResult.getRecordFlag();
-            if(recordFlag != null && recordFlag == 1){
-                joinRecorded(registrationId);
-            }*/
             roomId = examResult.getRoomId();
         }
 
@@ -233,22 +229,11 @@ public class RoomServiceImpl implements RoomService {
                 isAssistant = true;
             }
         }
-//        String display = "";
         Date curTime = DateTimeUtils.currentUTC();
         List<Room> roomList = roomDao.findByRid(roomId);
         if (roomList.isEmpty()) {
             saveRoom(roomId, roomId, curTime, null);
-            /*IMApiResultInfo resultInfo = imHelper.createGroup(new String[]{userId}, roomId, roomId);
-            if (!resultInfo.isSuccess()) {
-                log.error("joinRoom IM error: roomId={}, {}", roomId, resultInfo.getErrorMessage());
-                throw new ApiException(ErrorEnum.ERR_CREATE_ROOM_ERROR, resultInfo.getErrorMessage());
-            }
-            else {
-                scheduleManager.addExpiredTask(this, roomId);
-            }*/
-        }/* else {
-            display = roomList.get(0).getDisplay();
-        }*/
+        }
         RoleEnum roleEnum;
         RoomResult roomResult = new RoomResult();
         BaseResponse baseResponse = new BaseResponse(roomResult);
@@ -275,10 +260,7 @@ public class RoomServiceImpl implements RoomService {
                 roleEnum = Student;
             }
             saveRoomMember(userId,sysUser.getAvatar(), realName, roomId, roleEnum.getValue(), !isDisableCamera,!isMusicMode, curTime,registrationId);
-            /*IMApiResultInfo resultInfo = imHelper.joinGroup(new String[]{userId}, roomId, roomId);
-            if (!resultInfo.isSuccess()) {
-                throw new ApiException(ErrorEnum.ERR_CREATE_ROOM_ERROR, resultInfo.getErrorMessage());
-            }*/
+
             userResult.setMicrophone(true);
             userResult.setCamera(!isDisableCamera);
             userResult.setHandUp(false);
@@ -299,7 +281,6 @@ public class RoomServiceImpl implements RoomService {
                     return getBaseResponse(baseResponse);
                 }
             }
-//            roomMemberDao.updateCameraByRidAndUid(roomId, userId, !isDisableCamera);
             userResult.setCamera(roomMember.isCamera());
             userResult.setHandUp(roomMember.isHand());
             userResult.setJoinTime(roomMember.getJoinDt());
@@ -311,15 +292,6 @@ public class RoomServiceImpl implements RoomService {
         msg.setUserName(realName);
         msg.setCamera(!isDisableCamera);
         imHelper.publishMessage(userId, roomId, msg);
-        /*if (roleEnum == RoleEnum.MainTeacher) {
-            display = "display://type=0?userId=" + userId + "?uri=";
-            updateDisplay(roomId, userId, display, 0);
-            log.info("joinRoom, display changed: roomId={}, {}, userId={}", roomId, display, userId);
-        } else if (roleEnum == RoleEnum.AssistantTeacher && display.isEmpty()) {
-            display = "display://type=1?userId=" + userId + "?uri=";
-            updateDisplay(roomId, userId, display, 0);
-            log.info("joinRoom, display changed: roomId={}, {}, userId={}", roomId, display, userId);
-        }*/
 
         List<UserInfo> userInfoList = userDao.findByUid(userId);
         if (userInfoList.isEmpty()) {
@@ -339,7 +311,6 @@ public class RoomServiceImpl implements RoomService {
         userResult.setUserId(userId);
         userResult.setRole(roleEnum.getValue());
         roomResult.setUserInfo(userResult);
-//        roomResult.setDisplay(display);
         roomResult.setRoomId(roomId);
         if (registrationId != null){
             roomResult.setRegistrationId(registrationId);
@@ -347,8 +318,6 @@ public class RoomServiceImpl implements RoomService {
         roomResult.setExamFlag(examRoom.getExamFlag());
         List<RoomMember> roomMembers = roomMemberDao.findByRid(roomId);
         roomResult.setMembers(roomMembers,examRoom.getShieldUserId());
-//        List<Whiteboard> whiteboardList = whiteboardDao.findByRid(roomId);
-//        roomResult.setWhiteboards(whiteboardList);
         log.info("join success: roomId = {}, userId = {}, userName={}, role = {}", roomId, userId, roleEnum);
         if(registrationId != null){
             if(examResult.getIsFinishedExam() == 1){
@@ -357,10 +326,9 @@ public class RoomServiceImpl implements RoomService {
             this.publishMessage(eduUserFeignService.getPublishMessage(registrationId));
             eduUserFeignService.upsetStudentAttendance(registrationId,0);
             imHelper.startRecord(userId,roomId, registrationId,roomMembers);
-//            eduUserFeignService.updateSessionId(registrationId,imApiResultInfo.getSessionId());
+            //踢出其他学员
         }else {
             eduUserFeignService.upsetTeacherAttendance(examRoom.getId(),sysUser.getId(),0);
-//            imHelper.configRecord(roomId, registrationId,roomMembers);
         }
         return baseResponse;
     }
@@ -371,7 +339,6 @@ public class RoomServiceImpl implements RoomService {
         room.setName(roomName);
         room.setCreateDt(createTime);
         room.setDisplay(display);
-//        room.setWhiteboardNameIndex(0);
         try {
             roomDao.save(room);
         }catch (Exception e){
@@ -398,10 +365,6 @@ public class RoomServiceImpl implements RoomService {
     public Boolean leaveRoom(Long registrationId,String roomId,String userId) throws Exception {
         if(registrationId != null){
             StudentExamResultApiDto examResult = eduUserFeignService.getExamResult(registrationId);
-            /*Integer recordFlag = examResult.getRecordFlag();
-            if(recordFlag != null && recordFlag == 1){
-                levelRecorded(registrationId);
-            }*/
             roomId = examResult.getRoomId();
         }
         SysUser user;
@@ -411,12 +374,6 @@ public class RoomServiceImpl implements RoomService {
         }else {
             user = sysUserFeignService.queryUserById(Integer.parseInt(userId));
         }
-        /*if(StringUtils.isEmpty(userId)){
-            user = sysUserFeignService.queryUserInfo();
-            userId = user.getId().toString();
-        }else {
-            user = sysUserFeignService.queryUserById(Integer.parseInt(userId));
-        }*/
         log.info("leaveRoom: roomId={}, userId={}", roomId,userId);
 
         CheckUtils.checkArgument(userId != null, "userId must't be null");
@@ -425,50 +382,19 @@ public class RoomServiceImpl implements RoomService {
         if (roomList.size() == 0) {
             log.error("room : {} not exist ", roomId);
             return false;
-//            throw new ApiException(ErrorEnum.ERR_ROOM_NOT_EXIST);
         }
         RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
         if (roomMember == null) {
             log.error("{} not exist in room: {}", userId, roomId);
             return false;
-//            throw new ApiException(ErrorEnum.ERR_USER_NOT_EXIST_IN_ROOM);
         }
 
         int userRole = roomMember.getRole();
         log.info("leaveRoom: roomId={}, role={}", roomId, RoleEnum.getEnumByValue(userRole));
 
-        /*if (userRole == RoleEnum.MainTeacher.getValue() || userRole == RoleEnum.AssistantTeacher.getValue()) {
-            if (isUserDisplay(roomList.get(0), userId)) {
-                updateDisplay(roomId, userId, "", 0);
-                log.info("clear display cause speaker leave: roomId={}", roomId);
-            } else {
-                log.info("don't update current display: room={}, role={}", roomList.get(0), RoleEnum.getEnumByValue(userRole));
-            }
-        } else {
-            log.info("don't update current display: room={}, userRole={}", roomList.get(0), RoleEnum.getEnumByValue(userRole));
-        }*/
-
         if (roomMemberDao.countByRid(roomId) == 1) {
             roomMemberDao.deleteUserByRidAndUid(roomId, userId);
             roomDao.deleteByRid(roomId);
-            /*IMApiResultInfo apiResultInfo = null;
-            try {
-                roomMemberDao.deleteUserByRidAndUid(roomId, userId);
-                roomDao.deleteByRid(roomId);
-                apiResultInfo = imHelper.dismiss(userId, roomId);
-                if (apiResultInfo.getCode() == 200) {
-                    roomMemberDao.deleteUserByRidAndUid(roomId, userId);
-                    roomDao.deleteByRid(roomId);
-//                    deleteWhiteboardByUser(roomId, userId);
-                    log.info("dismiss the room: {},userId: {}", roomId,userId);
-                } else {
-                    log.error("{} exit {} room error: {}", userId, roomId, apiResultInfo.getErrorMessage());
-                    throw new ApiException(ErrorEnum.ERR_EXIT_ROOM_ERROR, apiResultInfo.getErrorMessage());
-                }
-            } catch (Exception e) {
-                log.error("{} exit {} room error: {}", userId, roomId, e.getMessage());
-                throw new ApiException(ErrorEnum.ERR_EXIT_ROOM_ERROR, e.getMessage());
-            }*/
         } else {
             roomMemberDao.deleteUserByRidAndUid(roomId, userId);
             MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Action_Leave, userId, userRole);
@@ -477,8 +403,6 @@ public class RoomServiceImpl implements RoomService {
             log.info("quit group: roomId={},userId: {}", roomId,userId);
         }
         userDao.deleteByUid(userId);
-//        this.signOut(Long.parseLong(roomId));
-//        this.publishMessage(eduUserFeignService.getPublishMessage(registrationId));
         if(registrationId != null){
             eduUserFeignService.upsetStudentAttendance(registrationId,1);
             imHelper.stopRecord(userId,roomId);
@@ -516,42 +440,8 @@ public class RoomServiceImpl implements RoomService {
         if (roomMemberDao.countByRid(roomId) == 1) {
             roomMemberDao.deleteUserByRidAndUid(roomId, userId);
             roomDao.deleteByRid(roomId);
-
-            /*IMApiResultInfo apiResultInfo = null;
-            try {
-                apiResultInfo = imHelper.dismiss(userId, roomId);
-                if (apiResultInfo.getCode() == 200) {
-                    roomMemberDao.deleteUserByRidAndUid(roomId, userId);
-                    roomDao.deleteByRid(roomId);
-                    log.info("levelRecorded dismiss the room: {},userId: {}", roomId,userId);
-                } else {
-                    log.error("levelRecorded {} exit {} room error: {}", userId, roomId, apiResultInfo.getErrorMessage());
-                    throw new ApiException(ErrorEnum.ERR_EXIT_ROOM_ERROR, apiResultInfo.getErrorMessage());
-                }
-            } catch (Exception e) {
-                log.error("levelRecorded {} exit {} room error: {}", userId, roomId, e.getMessage());
-                throw new ApiException(ErrorEnum.ERR_EXIT_ROOM_ERROR, e.getMessage());
-            }*/
         } else {
             roomMemberDao.deleteUserByRidAndUid(roomId, userId);
-
-            /*IMApiResultInfo apiResultInfo = null;
-            try {
-                apiResultInfo = imHelper.quit(new String[]{userId}, roomId);
-                if (apiResultInfo.isSuccess()) {
-                    roomMemberDao.deleteUserByRidAndUid(roomId, userId);
-                    MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Action_Leave, userId, userRole);
-                    msg.setUserName(user.getUsername());
-                    imHelper.publishMessage(userId, roomId, msg);
-                    imHelper.quit(new String[]{userId}, roomId);
-                    log.info("levelRecorded quit group: roomId={},userId: {}", roomId,userId);
-                } else {
-                    throw new ApiException(ErrorEnum.ERR_EXIT_ROOM_ERROR, apiResultInfo.getErrorMessage());
-                }
-            } catch (Exception e) {
-                log.error("levelRecorded leave room error: roomId={}, {}", roomId, e.getMessage());
-                throw new ApiException(ErrorEnum.ERR_EXIT_ROOM_ERROR);
-            }*/
         }
         userDao.deleteByUid(userId);
         if(registrationId != null){

+ 12 - 0
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/dao/ExamCertificationDao.java

@@ -1,6 +1,7 @@
 package com.keao.edu.user.dao;
 
 import com.keao.edu.common.dal.BaseDAO;
+import com.keao.edu.user.dto.BasicNeedCheckingDetailDto;
 import com.keao.edu.user.dto.ExamCertificationDto;
 import com.keao.edu.user.dto.NeedCheckingDetailDto;
 import com.keao.edu.user.entity.ExamCertification;
@@ -51,4 +52,15 @@ public interface ExamCertificationDao extends BaseDAO<Long, ExamCertification> {
      * @return
      */
     ExamCertificationDto getExamCertificationDto(@Param("examRegistrationId") Long examRegistrationId);
+
+    /**
+     * @describe 获取学员等待详情列表
+     * @apiNote 时光荏苒,认真工作的时间总是过得很快,而我、享受这一刻!
+     * @author zouxuan
+     * @date 2020/8/14
+     * @time 11:42
+     * @param examRoomId:
+     * @return java.util.List<com.keao.edu.user.dto.BasicNeedCheckingDetailDto>
+     */
+    List<BasicNeedCheckingDetailDto> basicNeedCheckingDetail(Long examRoomId);
 }

+ 63 - 0
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/dto/BasicNeedCheckingDetailDto.java

@@ -0,0 +1,63 @@
+package com.keao.edu.user.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+public class BasicNeedCheckingDetailDto {
+
+    @ApiModelProperty(value = "房间入口开启状态")
+    private Integer classroomSwitch;
+
+    @ApiModelProperty(value = "考试是否开始")
+    private Integer openFlag;
+
+    @ApiModelProperty(value = "是否录制")
+    private Integer recordFlag;
+
+    @ApiModelProperty(value = "学员是否考试")
+    private Integer finishedExam;
+
+    @ApiModelProperty(value = "学员编号")
+    private Integer studentId;
+
+    public Integer getClassroomSwitch() {
+        return classroomSwitch;
+    }
+
+    public void setClassroomSwitch(Integer classroomSwitch) {
+        this.classroomSwitch = classroomSwitch;
+    }
+
+    public Integer getOpenFlag() {
+        return openFlag;
+    }
+
+    public void setOpenFlag(Integer openFlag) {
+        this.openFlag = openFlag;
+    }
+
+    public Integer getRecordFlag() {
+        return recordFlag;
+    }
+
+    public void setRecordFlag(Integer recordFlag) {
+        this.recordFlag = recordFlag;
+    }
+
+    public Integer getFinishedExam() {
+        return finishedExam;
+    }
+
+    public void setFinishedExam(Integer finishedExam) {
+        this.finishedExam = finishedExam;
+    }
+
+    public Integer getStudentId() {
+        return studentId;
+    }
+
+    public void setStudentId(Integer studentId) {
+        this.studentId = studentId;
+    }
+}

+ 8 - 0
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/ExamCertificationService.java

@@ -3,6 +3,7 @@ package com.keao.edu.user.service;
 
 import com.keao.edu.common.page.PageInfo;
 import com.keao.edu.common.service.BaseService;
+import com.keao.edu.user.dto.BasicNeedCheckingDetailDto;
 import com.keao.edu.user.dto.ExamCertificationDto;
 import com.keao.edu.user.dto.NeedCheckingDetailDto;
 import com.keao.edu.user.entity.ExamCertification;
@@ -34,6 +35,13 @@ public interface ExamCertificationService extends BaseService<Long, ExamCertific
     NeedCheckingDetailDto needCheckingDetail(Long examRegistrationId);
 
     /**
+     * 学生端待考详情
+     * @param examRoomId
+     * @return
+     */
+    List<BasicNeedCheckingDetailDto> basicNeedCheckingDetail(Long examRoomId);
+
+    /**
      * 获取后台准考证详情
      * @param examRegistrationId
      * @return

+ 7 - 1
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/ExamCertificationServiceImpl.java

@@ -4,10 +4,10 @@ package com.keao.edu.user.service.impl;
 import com.keao.edu.auth.api.client.SysUserFeignService;
 import com.keao.edu.auth.api.entity.SysUser;
 import com.keao.edu.common.dal.BaseDAO;
-import com.keao.edu.common.exception.BizException;
 import com.keao.edu.common.service.impl.BaseServiceImpl;
 import com.keao.edu.user.api.entity.Student;
 import com.keao.edu.user.dao.*;
+import com.keao.edu.user.dto.BasicNeedCheckingDetailDto;
 import com.keao.edu.user.dto.ExamCertificationDto;
 import com.keao.edu.user.dto.NeedCheckingDetailDto;
 import com.keao.edu.user.entity.ExamCertification;
@@ -101,6 +101,12 @@ public class ExamCertificationServiceImpl extends BaseServiceImpl<Long, ExamCert
 	}
 
 	@Override
+	@Transactional(rollbackFor = Exception.class)
+	public List<BasicNeedCheckingDetailDto> basicNeedCheckingDetail(Long examRoomId) {
+		return examCertificationDao.basicNeedCheckingDetail(examRoomId);
+	}
+
+	@Override
 	public ExamCertificationDto findDetailByStudentId(Long examRegistrationId) {
 		ExamCertificationDto examCertificationDto = examCertificationDao.getExamCertificationDto(examRegistrationId);
 		Subject subject = subjectDao.get(examCertificationDto.getSubjectId());

+ 8 - 6
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/ExamRoomServiceImpl.java

@@ -810,6 +810,7 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
 		//加群退群
 		if(openFlag == 1){
 			String studentIds = examRoomStudentRelationService.getStudentIds(examRoomId);
+
 			StringBuffer stringBuffer = new StringBuffer();
 			stringBuffer.append(examRoom.getMainTeacherUserId());
 			if(StringUtils.isNotEmpty(studentIds)){
@@ -823,12 +824,13 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
 			publishMessageDto.setUserId(sysUser.getId().toString());
 			publishMessageDto.setRoomId(examRoomId.toString());
 			MemberChangedMessage msg = new MemberChangedMessage(5, sysUser.getId().toString(),3);
-			msg.setWaitNum(0);
-			msg.setClassroomSwitch(0);
-			msg.setOpenFlag(openFlag);
-			Map<String,Object> paramMap = new HashMap<>(1);
-			paramMap.put("studentQueue",examRoomStudentRelationService.queryNeedCheckingList(examRoomId));
-			msg.setWebParamJson(JSONObject.toJSONString(paramMap));
+			msg.setAppParamJson(examCertificationService.basicNeedCheckingDetail(examRoomId));
+//			msg.setWaitNum(0);
+//			msg.setClassroomSwitch(0);
+//			msg.setOpenFlag(openFlag);
+//			Map<String,Object> paramMap = new HashMap<>(1);
+//			paramMap.put("studentQueue",examRoomStudentRelationService.queryNeedCheckingList(examRoomId));
+//			msg.setWebParamJson(JSONObject.toJSONString(paramMap));
 			publishMessageDto.setMemberChangedMessage(msg);
 			imFeignService.publishMessage(publishMessageDto);
 			if(StringUtils.isNotEmpty(studentIds)){

+ 38 - 33
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/ExamRoomStudentRelationServiceImpl.java

@@ -646,16 +646,25 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 		if(roomStudentListDtos != null && roomStudentListDtos.size() > 0){
 			RoomStudentListDto roomStudentListDto = roomStudentListDtos.get(0);
 			SysUser sysUser = sysUserFeignService.queryUserInfo();
+			//当前用户是呼叫中或者考试中
 			if(roomStudentListDto.getFinishedExam() == 0 || roomStudentListDto.getFinishedExam() == 1){
+				boolean isPush = true;
+				if(roomStudentListDtos.size() > 1){
+					RoomStudentListDto roomStudentListDto1 = roomStudentListDtos.get(1);
+					if(roomStudentListDto1.getFinishedExam() == 2){
+						isPush = false;
+					}
+				}
+				currentStudent(roomStudentListDto.getExamRoomStudentRelationId(),isPush,examStatus,sysUser.getId());
 				//考试中
-				currentStudent(roomStudentListDto.getExamRoomStudentRelationId(),true,examStatus,sysUser.getId());
 				if(roomStudentListDtos.size() > 1){
 					RoomStudentListDto roomStudentListDto1 = roomStudentListDtos.get(1);
 					if(roomStudentListDto1.getFinishedExam() == 2){
-						nextStudent(roomStudentListDto1.getExamRoomStudentRelationId(),false,sysUser.getId());
+						nextStudent(roomStudentListDto1.getExamRoomStudentRelationId(),true,sysUser.getId());
 					}
 				}
 				roomStudentListDtos.remove(0);
+				//当前用户是已签到
 			}else if(roomStudentListDto.getFinishedExam() == 2){
 				//未开始
 				nextStudent(roomStudentListDto.getExamRoomStudentRelationId(),true,sysUser.getId());
@@ -725,22 +734,17 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 		publishMessageDto.setUserId(operator.toString());
 		publishMessageDto.setRoomId(examRoomStudentRelation.getExamRoomId().toString());
 		MemberChangedMessage msg = new MemberChangedMessage(action, examRoomStudentRelation.getStudentId().toString(),3);
-		/*if(action == 3 || action == 4){
-			msg = new MemberChangedMessage(action, examRoomStudentRelation.getStudentId().toString(),3);
-		}else {
-			msg = new MemberChangedMessage(action, examRoomStudentRelation.getStudentId(),3);
-		}*/
-//		String jsonString = JSONObject.toJSONString(examCertificationService.needCheckingDetail(examRoomStudentRelation.getExamRegistrationId()));
-		NeedCheckingDetailDto needCheckingDetailDto = examCertificationService.needCheckingDetail(examRoomStudentRelation.getExamRegistrationId());
-		msg.setWaitNum(needCheckingDetailDto.getWaitNum());
-		msg.setClassroomSwitch(needCheckingDetailDto.getClassroomSwitch());
-		msg.setOpenFlag(needCheckingDetailDto.getOpenFlag());
-//		msg.setAppParamJson(jsonString);
-		Map<String,Object> paramMap = new HashMap<>(2);
-
-		paramMap.put("studentQueue",this.queryNeedCheckingList(examRoomStudentRelation.getExamRoomId()));
-		paramMap.put("examCertification",examCertificationService.findDetailByStudentId(examRoomStudentRelation.getExamRegistrationId()));
-		msg.setWebParamJson(JSONObject.toJSONString(paramMap));
+
+//		NeedCheckingDetailDto needCheckingDetailDto = examCertificationService.needCheckingDetail(examRoomStudentRelation.getExamRegistrationId());
+//		msg.setWaitNum(needCheckingDetailDto.getWaitNum());
+//		msg.setClassroomSwitch(needCheckingDetailDto.getClassroomSwitch());
+//		msg.setOpenFlag(needCheckingDetailDto.getOpenFlag());
+
+		msg.setAppParamJson(examCertificationService.basicNeedCheckingDetail(examRoomStudentRelation.getExamRoomId()));
+//		Map<String,Object> paramMap = new HashMap<>(2);
+//		paramMap.put("studentQueue",this.queryNeedCheckingList(examRoomStudentRelation.getExamRoomId()));
+//		paramMap.put("examCertification",examCertificationService.findDetailByStudentId(examRoomStudentRelation.getExamRegistrationId()));
+//		msg.setWebParamJson(JSONObject.toJSONString(paramMap));
 		publishMessageDto.setMemberChangedMessage(msg);
 		imFeignService.publishMessage(publishMessageDto);
 	}
@@ -759,17 +763,17 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 		publishMessageDto.setUserId(userId);
 		publishMessageDto.setRoomId(examRoomStudentRelation.getExamRoomId().toString());
 		MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Student_Queue, examRoomStudentRelation.getStudentId().toString(),3);
-//		String jsonString = JSONObject.toJSONString(examCertificationService.needCheckingDetail(examRoomStudentRelation.getExamRegistrationId()));
-//		msg.setAppParamJson(jsonString);
-		NeedCheckingDetailDto needCheckingDetailDto = examCertificationService.needCheckingDetail(examRoomStudentRelation.getExamRegistrationId());
-		msg.setWaitNum(needCheckingDetailDto.getWaitNum());
-		msg.setClassroomSwitch(needCheckingDetailDto.getClassroomSwitch());
-		msg.setOpenFlag(needCheckingDetailDto.getOpenFlag());
-		Map<String,Object> paramMap = new HashMap<>(2);
-		this.queryNeedCheckingList(examRoomStudentRelation.getExamRoomId());
-		paramMap.put("studentQueue",this.queryNeedCheckingList(examRoomStudentRelation.getExamRoomId()));
-		paramMap.put("examCertification",examCertificationService.findDetailByStudentId(examRoomStudentRelation.getExamRegistrationId()));
-		msg.setWebParamJson(JSONObject.toJSONString(paramMap));
+
+		msg.setAppParamJson(examCertificationService.basicNeedCheckingDetail(examRoomStudentRelation.getExamRoomId()));
+
+//		NeedCheckingDetailDto needCheckingDetailDto = examCertificationService.needCheckingDetail(examRoomStudentRelation.getExamRegistrationId());
+//		msg.setWaitNum(needCheckingDetailDto.getWaitNum());
+//		msg.setClassroomSwitch(needCheckingDetailDto.getClassroomSwitch());
+//		msg.setOpenFlag(needCheckingDetailDto.getOpenFlag());
+//		Map<String,Object> paramMap = new HashMap<>(2);
+//		paramMap.put("studentQueue",this.queryNeedCheckingList(examRoomStudentRelation.getExamRoomId()));
+//		paramMap.put("examCertification",examCertificationService.findDetailByStudentId(examRoomStudentRelation.getExamRegistrationId()));
+//		msg.setWebParamJson(JSONObject.toJSONString(paramMap));
 		publishMessageDto.setMemberChangedMessage(msg);
 		return publishMessageDto;
 	}
@@ -805,14 +809,15 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 		publishMessageDto.setRoomId(studentExamRoom.getExamRoomId().toString());
 		MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Student_Queue, userId,3);
 //		String jsonString = JSONObject.toJSONString(examCertificationService.needCheckingDetail(examRegistrationId));
-		NeedCheckingDetailDto needCheckingDetailDto = examCertificationService.needCheckingDetail(examRegistrationId);
+//		NeedCheckingDetailDto needCheckingDetailDto = examCertificationService.needCheckingDetail(examRegistrationId);
 //		msg.setAppParamJson(needCheckingDetailDto.getWaitNum());
-		msg.setWaitNum(needCheckingDetailDto.getWaitNum());
-		msg.setClassroomSwitch(0);
-		msg.setOpenFlag(needCheckingDetailDto.getOpenFlag());
+//		msg.setWaitNum(needCheckingDetailDto.getWaitNum());
+//		msg.setClassroomSwitch(0);
+//		msg.setOpenFlag(needCheckingDetailDto.getOpenFlag());
 		publishMessageDto.setMemberChangedMessage(msg);
 		//修改签到状态
 		studentExamResultDao.updateFinishedExam(examRegistrationId,2);
+		msg.setAppParamJson(examCertificationService.basicNeedCheckingDetail(studentExamRoom.getExamRoomId()));
 		imFeignService.publishMessage(publishMessageDto);
 	}
 }

+ 18 - 0
edu-user/edu-user-biz/src/main/resources/config/mybatis/ExamCertificationMapper.xml

@@ -182,4 +182,22 @@
 		LEFT JOIN student_exam_result ser ON ser.exam_registration_id_ = ersr.exam_registration_id_
 		WHERE ersr.exam_registration_id_ = #{examRegistrationId} LIMIT 1
 	</select>
+
+	<resultMap id="BasicNeedCheckingDetailDtoMap" type="com.keao.edu.user.dto.BasicNeedCheckingDetailDto">
+		<result property="classroomSwitch" column="classroom_switch_"/>
+		<result property="openFlag" column="open_flag_"/>
+		<result property="finishedExam" column="is_finished_exam_"/>
+		<result property="recordFlag" column="record_flag_"/>
+		<result property="studentId" column="student_id_"/>
+	</resultMap>
+    <select id="basicNeedCheckingDetail" resultMap="BasicNeedCheckingDetailDtoMap">
+		SELECT er.open_flag_,ser.is_finished_exam_,ersr.classroom_switch_,ser.record_flag_,ersr.student_id_
+		FROM exam_room_student_relation ersr
+		LEFT JOIN examination_basic eb ON eb.id_ = ersr.examination_basic_id_
+		LEFT JOIN exam_room er ON er.id_ = ersr.exam_room_id_
+		LEFT JOIN student_exam_result ser ON ser.exam_registration_id_ = ersr.exam_registration_id_
+		LEFT JOIN sys_user su ON ersr.student_id_ = su.id_
+		WHERE ersr.exam_room_id_ = #{examRoomId} AND ser.is_finished_exam_ != 5
+		ORDER BY ser.is_finished_exam_ ASC,ersr.sign_in_time_ ASC,ersr.id_ ASC
+	</select>
 </mapper>

+ 3 - 0
edu-user/edu-user-biz/src/main/resources/config/mybatis/ExamReviewMapper.xml

@@ -206,6 +206,9 @@
 			<if test="reviewFlag != null and reviewFlag == 0">
 				AND ersr.sign_in_time_ IS NOT NULL AND er.id_ IS NULL AND ser.is_finished_exam_ IN (0,5)
 			</if>
+			<if test="reviewFlag == null">
+				AND ser.is_finished_exam_ != 3
+			</if>
 			<if test="roomId != 0">
 				AND ersr.exam_room_id_ = #{roomId}
 			</if>

+ 1 - 1
edu-user/edu-user-biz/src/main/resources/config/mybatis/ExamRoomStudentRelationMapper.xml

@@ -239,7 +239,7 @@
 		FROM exam_room_student_relation ersr
 		LEFT JOIN student_exam_result ser ON ser.exam_registration_id_ = ersr.exam_registration_id_
 		WHERE ersr.exam_room_id_ = #{examRoomId} AND ersr.sign_in_time_ IS NOT NULL
-		AND ser.is_finished_exam_ IN (0,1,2) AND ersr.student_id_ != #{studentId}
+		AND ser.is_finished_exam_ IN (0,1,2)
 		<if test="signInTime != null and signInTime != ''">
 			AND (ersr.sign_in_time_ &lt; #{signInTime} OR (ersr.sign_in_time_ = #{signInTime} AND ersr.id_ &lt; #{ersrId}))
 		</if>