|
@@ -271,24 +271,23 @@ public class RoomServiceImpl implements RoomService {
|
|
|
|
|
|
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
|
|
|
@Override
|
|
|
- public void joinRoomSuccess(String roomId,String userId) throws Exception {
|
|
|
+ public void joinRoomSuccess(String roomId,String userId,String deviceNum) throws Exception {
|
|
|
RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
|
|
|
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);
|
|
|
+// 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)));
|
|
@@ -351,10 +350,10 @@ public class RoomServiceImpl implements RoomService {
|
|
|
msg.setExamSongSwitch(examSong);
|
|
|
imHelper.publishMessage(userId, roomId, msg);
|
|
|
log.info("join room success: roomId = {}, userId = {}, role = {}", roomId, userId, roleEnum);
|
|
|
- signInSuccess(roomMember);
|
|
|
+ signInSuccess(roomMember,deviceNum);
|
|
|
}
|
|
|
|
|
|
- public void signInSuccess(RoomMember roomMember) {
|
|
|
+ public void signInSuccess(RoomMember roomMember,String deviceNum) {
|
|
|
String roomId = roomMember.getRid();
|
|
|
String userId = roomMember.getUid();
|
|
|
String currentRoomIdKey = roomId + userId;
|
|
@@ -373,7 +372,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
|
|
|
RoleEnum roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
|
|
|
if(roleEnum == RoleTeacher){
|
|
|
- teacherAttendanceService.addTeacherAttendanceSignIn(firstCourseId,userIdInt,currentRoomId);
|
|
|
+ teacherAttendanceService.addTeacherAttendanceSignIn(firstCourseId,userIdInt,currentRoomId,deviceNum);
|
|
|
}else {
|
|
|
studentAttendanceService.addStudentAttendanceSignIn(firstCourseId,userIdInt,currentRoomId);
|
|
|
}
|
|
@@ -406,30 +405,31 @@ public class RoomServiceImpl implements RoomService {
|
|
|
|
|
|
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class,isolation = Isolation.READ_COMMITTED)
|
|
|
@Override
|
|
|
- public void leaveRoomSuccess(String roomId,String userId) throws Exception {
|
|
|
+ public void leaveRoomSuccess(String roomId,String userId,String deviceNum) throws Exception {
|
|
|
RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
|
|
|
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);
|
|
|
+// 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());
|
|
|
Integer firstCourseId = Integer.parseInt(roomId.substring(1));
|
|
|
|
|
|
if(roleEnum == RoleTeacher){
|
|
|
courseScheduleStudentPaymentDao.adjustPlayMidi(firstCourseId,null,null);
|
|
|
courseScheduleStudentPaymentDao.adjustExamSong(firstCourseId.longValue(),null,null);
|
|
|
- teacherAttendanceService.addTeacherAttendanceSignOut(firstCourseId.longValue(),Integer.parseInt(userId));
|
|
|
+ teacherAttendanceService.addTeacherAttendanceSignOut(firstCourseId.longValue(),Integer.parseInt(userId),deviceNum);
|
|
|
}else {
|
|
|
studentAttendanceService.addStudentAttendanceSignOut(firstCourseId.longValue(),Integer.parseInt(userId));
|
|
|
}
|