|
@@ -169,37 +169,44 @@ public class RoomServiceImpl implements RoomService {
|
|
|
Date curTime = DateTimeUtils.currentUTC();
|
|
|
|
|
|
RoleEnum roleEnum;
|
|
|
+ String userName;
|
|
|
+ if(sysUser.getId().equals(courseSchedule.getActualTeacherId())){
|
|
|
+ roleEnum = RoleTeacher;
|
|
|
+ userName = sysUser.getRealName();
|
|
|
+ }else {
|
|
|
+ roleEnum = RoleStudent;
|
|
|
+ userName = sysUser.getUsername();
|
|
|
+ }
|
|
|
|
|
|
RoomResult.MemberResult userResult = new RoomResult.MemberResult();
|
|
|
- RoomMember member = roomMemberDao.findOne(roomId, userId);
|
|
|
- String userName;
|
|
|
- if (member == null) {
|
|
|
+ RoomMember roomMember = roomMemberDao.findOne(roomId, userId);
|
|
|
+ if (roomMember == null) {
|
|
|
int count = roomMemberDao.countRoomMember(roomId);
|
|
|
if (count == roomProperties.getMaxCount()) {
|
|
|
log.info("join error Over max count: roomId = {}, userId = {}", roomId,userId);
|
|
|
throw new ApiException(ErrorEnum.ERR_OVER_MAX_COUNT);
|
|
|
}
|
|
|
- if(sysUser.getId().equals(courseSchedule.getActualTeacherId())){
|
|
|
- roleEnum = RoleTeacher;
|
|
|
- userName = sysUser.getRealName();
|
|
|
- }else {
|
|
|
- roleEnum = RoleStudent;
|
|
|
- userName = sysUser.getUsername();
|
|
|
- }
|
|
|
userResult.setMicrophone(true);
|
|
|
userResult.setCamera(true);
|
|
|
userResult.setHandUpOn(false);
|
|
|
userResult.setJoinTime(curTime);
|
|
|
saveRoomMember(userId,sysUser.getAvatar(), userName, roomId, roleEnum.getValue(), curTime);
|
|
|
} else {
|
|
|
- roleEnum = RoleEnum.getEnumByValue(member.getRole());
|
|
|
+ //离线
|
|
|
+ if(!roomMember.getOnlineFlag()){
|
|
|
+ roomMember.setRole(roleEnum.getValue());
|
|
|
+ roomMember.setName(userName);
|
|
|
+ roomMember.setCamera(true);
|
|
|
+ roomMember.setJoinDt(curTime);
|
|
|
+ roomMember.setMusicMode(false);
|
|
|
+ roomMember.setOnlineFlag(true);
|
|
|
+ }
|
|
|
if(roleEnum == RoleTeacher){
|
|
|
courseScheduleStudentPaymentDao.adjustPlayMidi(courseId,null,null);
|
|
|
}
|
|
|
- userName = member.getName();
|
|
|
- userResult.setCamera(member.isCamera());
|
|
|
- userResult.setHandUpOn(member.isHand());
|
|
|
- userResult.setJoinTime(member.getJoinDt());
|
|
|
+ userResult.setCamera(roomMember.isCamera());
|
|
|
+ userResult.setHandUpOn(roomMember.isHand());
|
|
|
+ userResult.setJoinTime(roomMember.getJoinDt());
|
|
|
}
|
|
|
imHelper.joinGroup(new String[]{userId}, roomId, roomId);
|
|
|
|
|
@@ -298,7 +305,8 @@ public class RoomServiceImpl implements RoomService {
|
|
|
}
|
|
|
log.info("joinRoomFailure : roomId={}, userId={}", roomId, userId);
|
|
|
//如果加入失败,删除该用户数据
|
|
|
- roomMemberDao.deleteRoomMember(roomId,userId);
|
|
|
+ roomMember.setOnlineFlag(false);
|
|
|
+ roomMemberDao.update(roomMember);
|
|
|
}
|
|
|
|
|
|
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
|
|
@@ -429,6 +437,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
roomMember.setJoinDt(joinTime);
|
|
|
roomMember.setMusicMode(false);
|
|
|
roomMember.setHeadUrl(headUrl);
|
|
|
+ roomMember.setOnlineFlag(true);
|
|
|
roomMemberDao.insert(roomMember);
|
|
|
return roomMember;
|
|
|
}
|