|
@@ -276,18 +276,22 @@ public class RoomServiceImpl implements RoomService {
|
|
|
if(roomMember == null){
|
|
|
return ;
|
|
|
}
|
|
|
-// String joinSuccessKey = "joinRoomSuccess"+ roomId + userId;
|
|
|
-// if(redisTemplate.hasKey(joinSuccessKey)){
|
|
|
-// //兼容旧版本,防止重复调用
|
|
|
-// redisTemplate.delete(joinSuccessKey);
|
|
|
-// return;
|
|
|
-// }
|
|
|
-// String leaveSuccessKey = "leaveRoomSuccess"+ roomId + userId;
|
|
|
-// if(redisTemplate.hasKey(leaveSuccessKey)){
|
|
|
-// redisTemplate.delete(leaveSuccessKey);
|
|
|
-// }
|
|
|
-// redisTemplate.opsForValue().setIfAbsent(joinSuccessKey,roomId,2l,TimeUnit.SECONDS);
|
|
|
-// log.info("joinRoomSuccess : roomId={}, userId={}", roomId, userId);
|
|
|
+ String joinSuccessKey = "joinRoomSuccess"+ roomId + userId;
|
|
|
+ if(redisTemplate.hasKey(joinSuccessKey)){
|
|
|
+ //兼容旧版本,防止重复调用
|
|
|
+ redisTemplate.delete(joinSuccessKey);
|
|
|
+ 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);
|
|
|
+ log.info("joinRoomSuccess : roomId={}, userId={}", roomId, userId);
|
|
|
|
|
|
RoleEnum roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
|
|
|
CourseSchedule schedule = courseScheduleDao.getLock(Long.parseLong(roomId.substring(1)));
|
|
@@ -410,21 +414,26 @@ public class RoomServiceImpl implements RoomService {
|
|
|
if(roomMember == null){
|
|
|
return ;
|
|
|
}
|
|
|
-// String leaveSuccessKey = "leaveRoomSuccess"+ roomId + userId;
|
|
|
-// if(redisTemplate.hasKey(leaveSuccessKey)){
|
|
|
-// redisTemplate.delete(leaveSuccessKey);
|
|
|
-// //如果设备号不为空,更新设备号
|
|
|
-// return;
|
|
|
-// }
|
|
|
-// String joinSuccessKey = "joinRoomSuccess"+ roomId + userId;
|
|
|
-// if(redisTemplate.hasKey(joinSuccessKey)){
|
|
|
-// redisTemplate.delete(joinSuccessKey);
|
|
|
-// }
|
|
|
-// redisTemplate.opsForValue().setIfAbsent(leaveSuccessKey,roomId,2,TimeUnit.SECONDS);
|
|
|
-// //记录
|
|
|
-// log.info("leaveRoomSuccess: roomId={}, userId={}", roomId,userId);
|
|
|
- RoleEnum roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
|
|
|
+ String leaveSuccessKey = "leaveRoomSuccess"+ roomId + userId;
|
|
|
Integer firstCourseId = Integer.parseInt(roomId.substring(1));
|
|
|
+ if(redisTemplate.hasKey(leaveSuccessKey)){
|
|
|
+ redisTemplate.delete(leaveSuccessKey);
|
|
|
+ //如果设备号不为空,更新设备号
|
|
|
+ RoleEnum roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
|
|
|
+ if(roleEnum == RoleTeacher && StringUtils.isNotEmpty(deviceNum)){
|
|
|
+ signInSuccess(roomMember,deviceNum);
|
|
|
+ teacherAttendanceService.addTeacherAttendanceSignOut(firstCourseId.longValue(),Integer.parseInt(userId),deviceNum);
|
|
|
+ }
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ String joinSuccessKey = "joinRoomSuccess"+ roomId + userId;
|
|
|
+ if(redisTemplate.hasKey(joinSuccessKey)){
|
|
|
+ redisTemplate.delete(joinSuccessKey);
|
|
|
+ }
|
|
|
+ redisTemplate.opsForValue().setIfAbsent(leaveSuccessKey,roomId,2,TimeUnit.SECONDS);
|
|
|
+ //记录
|
|
|
+ log.info("leaveRoomSuccess: roomId={}, userId={}", roomId,userId);
|
|
|
+ RoleEnum roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
|
|
|
|
|
|
if(roleEnum == RoleTeacher){
|
|
|
courseScheduleStudentPaymentDao.adjustPlayMidi(firstCourseId,null,null);
|