|
@@ -301,20 +301,14 @@ public class RoomServiceImpl implements RoomService {
|
|
|
roomMember = saveRoomMember(roomId,userId);
|
|
|
}
|
|
|
String joinSuccessKey = "joinRoomSuccess"+ roomId + userId;
|
|
|
- if(redisTemplate.hasKey(joinSuccessKey)){
|
|
|
- //兼容旧版本,防止重复调用
|
|
|
- redisTemplate.delete(joinSuccessKey);
|
|
|
+ Boolean aBoolean = redisTemplate.opsForValue().setIfAbsent(joinSuccessKey, roomId, 2l, TimeUnit.SECONDS);
|
|
|
+ if(aBoolean){
|
|
|
RoleEnum roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
|
|
|
if(roleEnum == RoleTeacher && StringUtils.isNotEmpty(deviceNum)){
|
|
|
signInSuccess(roomMember,deviceNum);
|
|
|
}
|
|
|
return;
|
|
|
}
|
|
|
- String leaveSuccessKey = "leaveRoomSuccess"+ roomId + userId;
|
|
|
- if(redisTemplate.hasKey(leaveSuccessKey)){
|
|
|
- redisTemplate.delete(leaveSuccessKey);
|
|
|
- }
|
|
|
- redisTemplate.opsForValue().setIfAbsent(joinSuccessKey,roomId,2l,TimeUnit.SECONDS);
|
|
|
|
|
|
RoleEnum roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
|
|
|
CourseSchedule schedule = courseScheduleDao.getLock(Long.parseLong(roomId.substring(1)));
|
|
@@ -447,8 +441,8 @@ public class RoomServiceImpl implements RoomService {
|
|
|
}
|
|
|
|
|
|
String leaveSuccessKey = "leaveRoomSuccess"+ roomId + userId;
|
|
|
- if(redisTemplate.hasKey(leaveSuccessKey)){
|
|
|
- redisTemplate.delete(leaveSuccessKey);
|
|
|
+ Boolean aBoolean = redisTemplate.opsForValue().setIfAbsent(leaveSuccessKey, roomId, 2, TimeUnit.SECONDS);
|
|
|
+ if(aBoolean){
|
|
|
if (StringUtils.isNotEmpty(deviceNum)){
|
|
|
//如果设备号不为空,更新设备号
|
|
|
if(roleEnum == RoleTeacher){
|
|
@@ -457,11 +451,6 @@ public class RoomServiceImpl implements RoomService {
|
|
|
}
|
|
|
return;
|
|
|
}
|
|
|
- String joinSuccessKey = "joinRoomSuccess"+ roomId + userId;
|
|
|
- if(redisTemplate.hasKey(joinSuccessKey)){
|
|
|
- redisTemplate.delete(joinSuccessKey);
|
|
|
- }
|
|
|
- redisTemplate.opsForValue().setIfAbsent(leaveSuccessKey,roomId,2,TimeUnit.SECONDS);
|
|
|
|
|
|
String username;
|
|
|
SysUser sysUser = sysUserFeignService.queryUserById(parseInt);
|