|
@@ -105,43 +105,20 @@ public class RoomServiceImpl implements RoomService {
|
|
|
Long registrationId = roomMember.getExamRegistrationId();
|
|
|
log.info("joinRoomSuccess: roomId={}, userId={}", roomId,userId);
|
|
|
Integer anInt = Integer.parseInt(userId);
|
|
|
-
|
|
|
-// SysUser sysUser = sysUserFeignService.queryUserById(Integer.parseInt(roomMember.getUid()));
|
|
|
-// String realName = sysUser.getRealName();
|
|
|
if(registrationId != null){
|
|
|
examResult = eduUserFeignService.getExamResult(registrationId);
|
|
|
}
|
|
|
|
|
|
CheckUtils.checkArgument(roomId != null, "roomId must't be null");
|
|
|
|
|
|
- ExamRoom examRoom = eduUserFeignService.getExamRoom(Integer.parseInt(roomId));
|
|
|
- boolean isAssistant = false;
|
|
|
- if (StringUtils.isNotEmpty(examRoom.getAssistantTeacherUserIdList())){
|
|
|
- List<String> list = Arrays.asList(examRoom.getAssistantTeacherUserIdList().split(","));
|
|
|
- if(list.contains(userId)){
|
|
|
- isAssistant = true;
|
|
|
- }
|
|
|
- }
|
|
|
Date curTime = DateTimeUtils.currentUTC();
|
|
|
- Room room = roomDao.findByRid(roomId);
|
|
|
- if (room == null) {
|
|
|
- saveRoom(roomId, roomId, curTime, null);
|
|
|
- }
|
|
|
- RoleEnum roleEnum;
|
|
|
- if (roomMember == null) {
|
|
|
- if(anInt.equals(examRoom.getMainTeacherUserId())){
|
|
|
- roleEnum = RoleEnum.MainTeacher;
|
|
|
- }else if(isAssistant){
|
|
|
- roleEnum = RoleEnum.AssistantTeacher;
|
|
|
- }else {
|
|
|
- roleEnum = Student;
|
|
|
- }
|
|
|
- saveRoomMember(userId,roomMember.getHeadUrl(), roomMember.getName(), roomId, roleEnum.getValue(),true, curTime,registrationId);
|
|
|
- } else {
|
|
|
- roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
|
|
|
+ if (!roomDao.existsByRid(roomId)) {
|
|
|
+ saveRoom(roomId,curTime, null);
|
|
|
}
|
|
|
- log.info("user exist in the room: roomId={} , userId={}, use the last role={}", roomId, userId, roleEnum);
|
|
|
- MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Action_Join, userId, roleEnum.getValue());
|
|
|
+// RoleEnum roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
|
|
|
+
|
|
|
+ log.info("user exist in the room: roomId={} , userId={}, use the last role={}", roomId, userId, roomMember.getRole());
|
|
|
+ MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Action_Join, userId, roomMember.getRole());
|
|
|
msg.setTimestamp(curTime);
|
|
|
msg.setUserName(roomMember.getName());
|
|
|
msg.setCamera(true);
|
|
@@ -159,7 +136,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
userInfo.setUpdateDt(curTime);
|
|
|
userDao.save(userInfo);
|
|
|
}
|
|
|
- log.info("join success: roomId = {}, userId = {}, userName={}, role = {}", roomId, userId, roleEnum);
|
|
|
+ log.info("join success: roomId = {}, userId = {}, userName={}, role = {}", roomId, userId, roomMember.getRole());
|
|
|
if(registrationId != null){
|
|
|
if(examResult.getIsFinishedExam() == 1){
|
|
|
eduUserFeignService.updateFinishedExam(registrationId,0);
|
|
@@ -169,7 +146,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
imHelper.startRecord(roomId, registrationId);
|
|
|
// exitRoom(roomId,userId);
|
|
|
}else {
|
|
|
- eduUserFeignService.upsetTeacherAttendance(examRoom.getId(),anInt,0);
|
|
|
+ eduUserFeignService.upsetTeacherAttendance(Long.parseLong(roomId),anInt,0);
|
|
|
imHelper.configRecord(roomId);
|
|
|
}
|
|
|
}
|
|
@@ -200,9 +177,8 @@ public class RoomServiceImpl implements RoomService {
|
|
|
}
|
|
|
}
|
|
|
Date curTime = DateTimeUtils.currentUTC();
|
|
|
- Room room = roomDao.findByRid(roomId);
|
|
|
- if (room == null) {
|
|
|
- saveRoom(roomId, roomId, curTime, null);
|
|
|
+ if (!roomDao.existsByRid(roomId)) {
|
|
|
+ saveRoom(roomId,curTime, null);
|
|
|
}
|
|
|
RoleEnum roleEnum;
|
|
|
RoomResult roomResult = new RoomResult();
|
|
@@ -266,10 +242,10 @@ public class RoomServiceImpl implements RoomService {
|
|
|
return baseResponse;
|
|
|
}
|
|
|
|
|
|
- private void saveRoom(String roomId, String roomName, Date createTime, String display) {
|
|
|
+ private void saveRoom(String roomId,Date createTime, String display) {
|
|
|
Room room = new Room();
|
|
|
room.setRid(roomId);
|
|
|
- room.setName(roomName);
|
|
|
+ room.setName(roomId);
|
|
|
room.setCreateDt(createTime);
|
|
|
room.setDisplay(display);
|
|
|
try {
|
|
@@ -304,29 +280,22 @@ public class RoomServiceImpl implements RoomService {
|
|
|
CheckUtils.checkArgument(userId != null, "userId must't be null");
|
|
|
CheckUtils.checkArgument(roomId != null, "roomId must't be null");
|
|
|
|
|
|
- Room room = roomDao.findByRid(roomId);
|
|
|
- if (room == null) {
|
|
|
+// Room room = roomDao.findByRid(roomId);
|
|
|
+ if (!roomDao.existsByRid(roomId)) {
|
|
|
log.error("room : {} not exist ", roomId);
|
|
|
return;
|
|
|
}
|
|
|
- if (roomMember == null) {
|
|
|
- log.error("{} not exist in room: {}", userId, roomId);
|
|
|
- return;
|
|
|
- }
|
|
|
int userRole = roomMember.getRole();
|
|
|
log.info("leaveRoom: roomId={}, role={}", roomId, RoleEnum.getEnumByValue(userRole));
|
|
|
-
|
|
|
+ roomMemberDao.deleteUserByRidAndUid(roomId, userId);
|
|
|
+ userDao.deleteByUid(userId);
|
|
|
if (roomMemberDao.countByRid(roomId) == 1) {
|
|
|
- roomMemberDao.deleteUserByRidAndUid(roomId, userId);
|
|
|
roomDao.deleteByRid(roomId);
|
|
|
- } else {
|
|
|
- roomMemberDao.deleteUserByRidAndUid(roomId, userId);
|
|
|
- MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Action_Leave, userId, userRole);
|
|
|
- msg.setUserName(roomMember.getName());
|
|
|
- imHelper.publishMessage(userId, roomId, msg);
|
|
|
- log.info("quit group: roomId={},userId: {}", roomId,userId);
|
|
|
}
|
|
|
- userDao.deleteByUid(userId);
|
|
|
+ MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Action_Leave, userId, userRole);
|
|
|
+ msg.setUserName(roomMember.getName());
|
|
|
+ imHelper.publishMessage(userId, roomId, msg);
|
|
|
+ log.info("quit group: roomId={},userId: {}", roomId,userId);
|
|
|
if(registrationId != null){
|
|
|
eduUserFeignService.upsetStudentAttendance(registrationId,1);
|
|
|
imHelper.stopRecord(roomId);
|