|
@@ -434,47 +434,46 @@ public class RoomServiceImpl implements RoomService {
|
|
|
@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(firstCourseId.longValue());
|
|
|
- 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) {
|
|
@@ -494,7 +493,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);
|