zouxuan 5 年之前
父节点
当前提交
61fc4579a9

+ 1 - 1
edu-im/edu-im-api/src/main/java/com/keao/edu/im/api/client/ImFeignService.java

@@ -150,5 +150,5 @@ public interface ImFeignService {
 	 * @return
 	 */
 	@PostMapping(value = "room/destroyRoom")
-	void destroyRoom(@RequestParam("roomId") Long roomId);
+	void destroyRoom(@RequestParam("roomId") Long roomId,@RequestParam("userId") String userId,@RequestParam("groupId") String groupId);
 }

+ 1 - 1
edu-im/edu-im-api/src/main/java/com/keao/edu/im/api/client/callback/ImFeignServiceFallback.java

@@ -89,7 +89,7 @@ public class ImFeignServiceFallback implements ImFeignService {
     }
 
     @Override
-    public void destroyRoom(Long roomId) {
+    public void destroyRoom(Long roomId,String userId,String groupId) {
 
     }
 /*

+ 2 - 2
edu-im/edu-im-server/src/main/java/com/keao/edu/im/controller/RoomController.java

@@ -115,8 +115,8 @@ public class RoomController{
     }
 
     @RequestMapping(value = "/destroyRoom", method = RequestMethod.POST)
-    public void kickMember(Long roomId){
-        roomService.destroyRoom(roomId);
+    public void kickMember(Long roomId,String userId,String groupId) throws Exception {
+        roomService.destroyRoom(roomId,userId,groupId);
     }
 
     @RequestMapping(value = "/kick", method = RequestMethod.POST)

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

@@ -664,7 +664,8 @@ public class RoomServiceImpl implements RoomService {
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void destroyRoom(Long roomId){
+    public void destroyRoom(Long roomId,String userId,String groupId) throws Exception {
+
         CheckUtils.checkArgument(roomId != null, "destroyRoom roomId must't be null");
         SysUser sysUser = sysUserFeignService.queryUserInfo();
         List<RoomMember> roomMembers = roomMemberDao.findByRid(roomId.toString());
@@ -694,6 +695,7 @@ public class RoomServiceImpl implements RoomService {
                 }
             });
             roomDao.deleteByRid(roomId.toString());
+            imHelper.dismiss(userId,groupId);
         }
     }
 

+ 1 - 1
edu-im/edu-im-server/src/main/java/com/keao/edu/im/service/RoomService.java

@@ -31,7 +31,7 @@ public interface RoomService {
      * 销毁房间
      * @param roomId
      */
-    public void destroyRoom(Long roomId);
+    public void destroyRoom(Long roomId,String userId,String groupId) throws Exception;
 
     public Boolean kickMember(ReqUserData data) throws ApiException, Exception;
 

+ 0 - 7
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/ExamRoomStudentRelationService.java

@@ -80,13 +80,6 @@ public interface ExamRoomStudentRelationService extends BaseService<Long, ExamRo
     public PublishMessageDto getPublishMessage(Long examRegistrationId);
 
     /**
-     * 获取房间学员队列
-     * @param roomId
-     * @return
-     */
-    List<RoomStudentListDto> queryStudentList(Long roomId);
-
-    /**
      * 队列
      * @param roomId
      * @return

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

@@ -852,8 +852,8 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
 			if(i > 0){
 				throw new BizException("操作失败:存在未评审的学员");
 			}
-			imFeignService.dismissGroup(sysUser.getId().toString(),examRoomId.toString());
-			imFeignService.destroyRoom(examRoomId);
+//			imFeignService.dismissGroup(sysUser.getId().toString(),examRoomId.toString());
+			imFeignService.destroyRoom(examRoomId,sysUser.getId().toString(),examRoomId.toString());
 			studentExamResultService.calculateStudentExamAvgScore(examRoomId);
 		}
 	}
@@ -869,8 +869,8 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
 			throw new BizException("考场不存在");
 		}
 		examRoom.setOpenFlag(0);
-		imFeignService.dismissGroup(examRoom.getMainTeacherUserId().toString(),examRoomId.toString());
-		imFeignService.destroyRoom(examRoomId);
+//		imFeignService.dismissGroup(examRoom.getMainTeacherUserId().toString(),examRoomId.toString());
+		imFeignService.destroyRoom(examRoomId,examRoom.getMainTeacherUserId().toString(),examRoomId.toString());
 		examRoomDao.update(examRoom);
 		studentExamResultService.calculateStudentExamAvgScore(examRoomId);
 		return BaseController.succeed();
@@ -885,8 +885,8 @@ public class ExamRoomServiceImpl extends BaseServiceImpl<Long, ExamRoom> impleme
 		}
 		for (ExamRoom examRoom : examRooms) {
 			examRoom.setOpenFlag(0);
-			imFeignService.dismissGroup(examRoom.getMainTeacherUserId().toString(),examRoom.getId().toString());
-			imFeignService.destroyRoom(examRoom.getId());
+//			imFeignService.dismissGroup(examRoom.getMainTeacherUserId().toString(),examRoom.getId().toString());
+			imFeignService.destroyRoom(examRoom.getId(),examRoom.getMainTeacherUserId().toString(),examRoom.getId().toString());
 			studentExamResultService.calculateStudentExamAvgScore(examRoom.getId());
 		}
 		examRoomDao.batchUpdate(examRooms);

+ 28 - 14
edu-user/edu-user-biz/src/main/java/com/keao/edu/user/service/impl/ExamRoomStudentRelationServiceImpl.java

@@ -14,7 +14,6 @@ import com.keao.edu.im.api.client.ImFeignService;
 import com.keao.edu.im.api.entity.MemberChangedMessage;
 import com.keao.edu.im.api.entity.PublishMessageDto;
 import com.keao.edu.im.api.entity.ReqUserData;
-import com.keao.edu.thirdparty.message.MessageSenderPlugin;
 import com.keao.edu.thirdparty.message.provider.JiguangPushPlugin;
 import com.keao.edu.user.api.entity.ExamRoom;
 import com.keao.edu.user.api.entity.ExamRoomStudentRelation;
@@ -26,7 +25,10 @@ import com.keao.edu.user.dto.RoomStudentListDto;
 import com.keao.edu.user.dto.StuRecordDetailDto;
 import com.keao.edu.user.entity.*;
 import com.keao.edu.user.page.ExamRoomStudentRelationQueryInfo;
-import com.keao.edu.user.service.*;
+import com.keao.edu.user.service.ExamCertificationService;
+import com.keao.edu.user.service.ExamRoomStudentRelationService;
+import com.keao.edu.user.service.ExamTeacherSalaryService;
+import com.keao.edu.user.service.OrganizationService;
 import com.keao.edu.util.collection.MapUtil;
 import com.keao.edu.util.date.DateUtil;
 import org.apache.commons.lang3.StringUtils;
@@ -308,6 +310,17 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 					nextStudent(roomStudentListDto1.getExamRoomStudentRelationId(),false,sysUser.getId());
 				}
 			}
+			//当等待人数到指定数值时,推送准备考试消息
+			int actionExamPush = Integer.parseInt(sysConfigDao.findConfigValue("action_exam_push"));
+			if(actionExamPush != 0 && roomStudentListDtos.size() > actionExamPush){
+				RoomStudentListDto studentListDto = roomStudentListDtos.get(actionExamPush - 1);
+				if(studentListDto.getFinishedExam() == 3){
+					HashMap<Integer, String> map = new HashMap<>();
+					map.put(studentListDto.getStudentId(),studentListDto.getStudentId().toString());
+					String url = "3?examRegistrationId=" + studentListDto.getExamRegistrationId();
+					sysMessageService.batchSendMessage(MessageTypeEnum.EXAM_WILL_START_PUSH,map,null,null,url, JiguangPushPlugin.PLUGIN_NAME);
+				}
+			}
 			//将当前学员退踢出教室
 //			imFeignService.kickRoom(new ReqUserData(examRoomStudentRelation.getExamRegistrationId(),roomStudentListDto.getStudentId().toString()));
 		}
@@ -452,12 +465,14 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 			}
 			//当等待人数到指定数值时,推送准备考试消息
 			int actionExamPush = Integer.parseInt(sysConfigDao.findConfigValue("action_exam_push"));
-			if(roomStudentListDtos.size() > actionExamPush){
+			if(actionExamPush != 0 && roomStudentListDtos.size() > actionExamPush){
 				RoomStudentListDto studentListDto = roomStudentListDtos.get(actionExamPush - 1);
-				HashMap<Integer, String> map = new HashMap<>();
-				map.put(studentListDto.getStudentId(),studentListDto.getStudentId().toString());
-				String url = "3?examRegistrationId=" + studentListDto.getExamRegistrationId();
-				sysMessageService.batchSendMessage(MessageTypeEnum.EXAM_WILL_START_PUSH,map,null,null,url, JiguangPushPlugin.PLUGIN_NAME);
+				if(studentListDto.getFinishedExam() == 3){
+					HashMap<Integer, String> map = new HashMap<>();
+					map.put(studentListDto.getStudentId(),studentListDto.getStudentId().toString());
+					String url = "3?examRegistrationId=" + studentListDto.getExamRegistrationId();
+					sysMessageService.batchSendMessage(MessageTypeEnum.EXAM_WILL_START_PUSH,map,null,null,url, JiguangPushPlugin.PLUGIN_NAME);
+				}
 			}
 		}
 	}
@@ -488,6 +503,10 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 		//开启学员房间入口
 		examRoomStudentRelation.setClassroomSwitch(1);
 		examRoomStudentRelationDao.update(examRoomStudentRelation);
+		HashMap<Integer, String> map = new HashMap<>(1);
+		map.put(examRoomStudentRelation.getStudentId(),examRoomStudentRelation.getStudentId().toString());
+		String url = "3?examRegistrationId" + nextExamRoomStudentRelationId;
+		sysMessageService.batchSendMessage(MessageTypeEnum.EXAM_STARTED_PUSH,map,null,null,url,JiguangPushPlugin.PLUGIN_NAME);
 
 		//状态变更为呼叫中
 		studentExamResultDao.updateFinishedExam(examRoomStudentRelation.getExamRegistrationId(),1);
@@ -547,18 +566,13 @@ public class ExamRoomStudentRelationServiceImpl extends BaseServiceImpl<Long, Ex
 	}
 
 	@Override
-	public List<RoomStudentListDto> queryStudentList(Long roomId) {
-		return examRoomStudentRelationDao.queryStudentList(roomId);
-	}
-
-	@Override
 	public Map<String, Object> queryNeedCheckingList(Long roomId) {
 		List<RoomStudentListDto> roomStudentListDtos = examRoomStudentRelationDao.queryStudentList(roomId);
-		Map<String,Object> resultMap = new HashMap<>(4);
+		Map<String,Object> resultMap = new HashMap<>(3);
 		resultMap.put("studentList",roomStudentListDtos);
 		resultMap.put("signTotalNum",examRoomStudentRelationDao.querySignTotalNum(roomId));
 		resultMap.put("noSignTotalNum",examRoomStudentRelationDao.queryNoSignTotalNum(roomId));
-		resultMap.put("surplusNum",examRoomStudentRelationDao.querySurplusNum(roomId));
+//		resultMap.put("surplusNum",examRoomStudentRelationDao.querySurplusNum(roomId));
 		return resultMap;
 	}
 

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

@@ -222,7 +222,7 @@
 		LEFT JOIN `subject` s ON s.id_ = ec.subject_id_
 		LEFT JOIN sys_user su ON ersr.student_id_ = su.id_
 		LEFT JOIN student_exam_result ser ON ser.exam_registration_id_ = ersr.exam_registration_id_
-		WHERE ersr.exam_room_id_ = #{roomId}
+		WHERE ersr.exam_room_id_ = #{roomId} AND ser.is_finished_exam_ != 5
 		ORDER BY ersr.sign_in_time_ IS NULL,ser.is_finished_exam_ ASC,ersr.sign_in_time_ ASC
 	</select>
     <select id="querySignTotalNum" resultType="java.lang.Integer">