|
@@ -119,7 +119,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
return Integer.parseInt(roomId);
|
|
|
}
|
|
|
|
|
|
- @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
|
|
|
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
public RoomResult joinRoom(String roomId) throws Exception {
|
|
|
CheckUtils.checkArgument(roomId != null, "roomId must't be null");
|
|
@@ -280,7 +280,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
}
|
|
|
|
|
|
|
|
|
- @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
|
|
|
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
public void joinRoomFailure(String roomId, String userId) {
|
|
|
RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
|
|
@@ -292,7 +292,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
roomMemberDao.deleteUserByRidAndUid(roomId,userId);
|
|
|
}
|
|
|
|
|
|
- @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
|
|
|
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
public void joinRoomSuccess(String roomId,String userId,String deviceNum) throws Exception {
|
|
|
log.info("joinRoomSuccess: roomId={}, userId={}, deviceNum={}", roomId,userId,deviceNum);
|
|
@@ -393,8 +393,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
log.error("signInFailure: roomId={}, userId={}", roomId, userId);
|
|
|
currentRoomId = firstCourseId;
|
|
|
}
|
|
|
- log.info("signInSuccess: currentRoomId={}", currentRoomId);
|
|
|
- log.info("signInSuccess: roomId={}, userId={}", roomId, userId);
|
|
|
+ log.info("signInSuccess: roomId={}, userId={},currentRoomId={}", roomId, userId,currentRoomId);
|
|
|
Integer userIdInt = Integer.parseInt(userId);
|
|
|
|
|
|
RoleEnum roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
|
|
@@ -430,51 +429,50 @@ public class RoomServiceImpl implements RoomService {
|
|
|
return roomMember;
|
|
|
}
|
|
|
|
|
|
- @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
|
|
|
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
public void leaveRoomSuccess(String roomId,String userId,String deviceNum) throws Exception {
|
|
|
log.info("leaveRoomSuccess: roomId={}, userId={},deviceNum={}", roomId,userId,deviceNum);
|
|
|
- RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
|
|
|
- String leaveSuccessKey = "leaveRoomSuccess"+ roomId + userId;
|
|
|
+// RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
|
|
|
+
|
|
|
Integer firstCourseId = Integer.parseInt(roomId.substring(1));
|
|
|
+ RoleEnum roleEnum;
|
|
|
+ int parseInt = Integer.parseInt(userId);
|
|
|
+ Teacher teacher = teacherDao.get(parseInt);
|
|
|
+ CourseSchedule courseSchedule = courseScheduleDao.get(firstCourseId.longValue());
|
|
|
+ if(teacher != null && teacher.getId().equals(courseSchedule.getActualTeacherId())){
|
|
|
+ roleEnum = RoleTeacher;
|
|
|
+ }else {
|
|
|
+ roleEnum = RoleStudent;
|
|
|
+ }
|
|
|
+
|
|
|
+ String leaveSuccessKey = "leaveRoomSuccess"+ roomId + userId;
|
|
|
if(redisTemplate.hasKey(leaveSuccessKey)){
|
|
|
redisTemplate.delete(leaveSuccessKey);
|
|
|
if (StringUtils.isNotEmpty(deviceNum)){
|
|
|
//如果设备号不为空,更新设备号
|
|
|
- RoleEnum roleEnum;
|
|
|
- if(roomMember == null){
|
|
|
- Teacher teacher = teacherDao.get(Integer.parseInt(userId));
|
|
|
- CourseSchedule courseSchedule = courseScheduleDao.get(Long.parseLong(roomId));
|
|
|
- if(teacher != null && teacher.getId().equals(courseSchedule.getActualTeacherId())){
|
|
|
- roleEnum = RoleTeacher;
|
|
|
- }else {
|
|
|
- roleEnum = RoleStudent;
|
|
|
- }
|
|
|
- }else {
|
|
|
- roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
|
|
|
- }
|
|
|
if(roleEnum == RoleTeacher){
|
|
|
- teacherAttendanceService.addTeacherAttendanceSignOut(firstCourseId.longValue(),Integer.parseInt(userId),deviceNum);
|
|
|
+ teacherAttendanceService.addTeacherAttendanceSignOut(firstCourseId.longValue(),parseInt,deviceNum);
|
|
|
}
|
|
|
}
|
|
|
return;
|
|
|
}
|
|
|
- if(roomMember == null){
|
|
|
- return ;
|
|
|
- }
|
|
|
String joinSuccessKey = "joinRoomSuccess"+ roomId + userId;
|
|
|
if(redisTemplate.hasKey(joinSuccessKey)){
|
|
|
redisTemplate.delete(joinSuccessKey);
|
|
|
}
|
|
|
redisTemplate.opsForValue().setIfAbsent(leaveSuccessKey,roomId,2,TimeUnit.SECONDS);
|
|
|
- RoleEnum roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
|
|
|
|
|
|
+ String username;
|
|
|
+ SysUser sysUser = sysUserFeignService.queryUserById(parseInt);
|
|
|
if(roleEnum == RoleTeacher){
|
|
|
+ username = sysUser.getRealName();
|
|
|
courseScheduleStudentPaymentDao.adjustPlayMidi(firstCourseId,null,null);
|
|
|
courseScheduleStudentPaymentDao.adjustExamSong(firstCourseId.longValue(),null,null);
|
|
|
- teacherAttendanceService.addTeacherAttendanceSignOut(firstCourseId.longValue(),Integer.parseInt(userId),deviceNum);
|
|
|
+ teacherAttendanceService.addTeacherAttendanceSignOut(firstCourseId.longValue(),parseInt,deviceNum);
|
|
|
}else {
|
|
|
- studentAttendanceService.addStudentAttendanceSignOut(firstCourseId.longValue(),Integer.parseInt(userId));
|
|
|
+ username = sysUser.getUsername();
|
|
|
+ studentAttendanceService.addStudentAttendanceSignOut(firstCourseId.longValue(),parseInt);
|
|
|
}
|
|
|
Room room = roomDao.findByRid(roomId);
|
|
|
if (room == null) {
|
|
@@ -485,7 +483,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
if (roleEnum != RoleStudent && isUserDisplay(room, userId)) {
|
|
|
updateDisplay(roomId, userId, "", 0);
|
|
|
}
|
|
|
- if (roomMemberDao.countByRid(roomId) == 1) {
|
|
|
+ if (roomMemberDao.countByRid(roomId) <= 1) {
|
|
|
roomMemberDao.deleteUserByRidAndUid(roomId, userId);
|
|
|
roomDao.deleteByRid(roomId);
|
|
|
deleteWhiteboardByUser(roomId, userId);
|
|
@@ -494,7 +492,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
} else {
|
|
|
roomMemberDao.deleteUserByRidAndUid(roomId, userId);
|
|
|
MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Action_Leave, userId, roleEnum.getValue());
|
|
|
- msg.setUserName(roomMember.getName());
|
|
|
+ msg.setUserName(username);
|
|
|
imHelper.publishMessage(userId, roomId, msg);
|
|
|
imHelper.quit(new String[]{userId}, roomId);
|
|
|
log.info("leaveRoomSuccess quit group: roomId={},userId: {}", roomId,userId);
|
|
@@ -512,7 +510,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
|
|
|
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
public void destroyRoom(String roomId) {
|
|
|
whiteboardDao.deleteByRid(roomId);
|
|
@@ -585,7 +583,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
|
|
|
+ @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
|
|
|
public Boolean kickMember(String roomId) throws Exception {
|
|
|
SysUser authUser = sysUserFeignService.queryUserInfo();
|
|
|
String userId = authUser.getId().toString();
|