|
@@ -286,32 +286,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
|
|
|
Long currentRoomId = Long.parseLong(redisTemplate.opsForValue().get(roomString));
|
|
|
log.info("signInSuccess: currentRoomId={}", currentRoomId);
|
|
|
- /*CourseSchedule schedule = courseScheduleDao.get(courseId);
|
|
|
- Date date = new Date();
|
|
|
- String classDate = DateUtil.format(schedule.getClassDate(), DateUtil.DEFAULT_PATTERN);
|
|
|
- String endClassTime = DateUtil.format(schedule.getEndClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
|
|
|
- Date classEndDateTime = DateUtil.stringToDate(classDate + " " + endClassTime, DateUtil.EXPANDED_DATE_TIME_FORMAT);
|
|
|
- //如果当前时间大于课程结束时间,并查看是否是连堂课,将签到记录落到对应的考勤上
|
|
|
- if(date.after(classEndDateTime)){
|
|
|
- //获取下一节连堂课
|
|
|
- CourseSchedule cs = schedule;
|
|
|
- String continueCourseTime = sysConfigDao.findConfigValue(SysConfigService.ONLINE_CONTINUE_COURSE_TIME);
|
|
|
- if(StringUtils.isEmpty(continueCourseTime)){
|
|
|
- continueCourseTime = "5";
|
|
|
- }
|
|
|
- while (true){
|
|
|
- //获取当前课程的所有连堂课列表
|
|
|
- String courseClassDate = DateUtil.format(cs.getClassDate(), DateUtil.DEFAULT_PATTERN);
|
|
|
- String courseEndDateTime = DateUtil.format(cs.getEndClassTime(), DateUtil.EXPANDED_TIME_FORMAT);
|
|
|
- //上课时间
|
|
|
- cs = courseScheduleDao.queryContinueCourse(cs,continueCourseTime,courseClassDate + " " + courseEndDateTime);
|
|
|
- if(cs != null){
|
|
|
- courseId = cs.getId();
|
|
|
- }else {
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }*/
|
|
|
+ redisTemplate.delete(roomString);
|
|
|
RoleEnum roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
|
|
|
if(roleEnum == RoleTeacher){
|
|
|
teacherAttendanceService.addTeacherAttendanceSignIn(firstCourseId,userIdInt,currentRoomId);
|
|
@@ -346,53 +321,50 @@ public class RoomServiceImpl implements RoomService {
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class, isolation = Isolation.SERIALIZABLE)
|
|
|
public void leaveRoomSuccess(String roomId,String userId) throws Exception {
|
|
|
-// RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
|
|
|
-// if(roomMember == null){
|
|
|
-// return ;
|
|
|
-// }
|
|
|
-// log.info("leaveRoomSuccess: roomId={}, userId={}", roomId,userId);
|
|
|
-// RoleEnum roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
|
|
|
+ RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
|
|
|
+ if(roomMember == null){
|
|
|
+ return ;
|
|
|
+ }
|
|
|
+ log.info("leaveRoomSuccess: roomId={}, userId={}", roomId,userId);
|
|
|
+ RoleEnum roleEnum = RoleEnum.getEnumByValue(roomMember.getRole());
|
|
|
String roomString = roomId.substring(1);
|
|
|
Integer firstCourseId = Integer.parseInt(roomString);
|
|
|
// Long currentRoomId = Long.parseLong(redisTemplate.opsForValue().get(roomString));
|
|
|
-
|
|
|
- teacherAttendanceService.addTeacherAttendanceSignOut(firstCourseId.longValue(),Integer.parseInt(userId));
|
|
|
-
|
|
|
//
|
|
|
// log.info("leaveRoomSuccess: currentRoomId={}", currentRoomId);
|
|
|
-// redisTemplate.delete(roomString);
|
|
|
-// if(roleEnum == RoleTeacher){
|
|
|
-// courseScheduleStudentPaymentDao.adjustPlayMidi(firstCourseId,null,null);
|
|
|
-// teacherAttendanceService.addTeacherAttendanceSignOut(firstCourseId.longValue(),Integer.parseInt(userId));
|
|
|
-// }else {
|
|
|
-// studentAttendanceService.addStudentAttendanceSignOut(firstCourseId.longValue(),Integer.parseInt(userId));
|
|
|
-// }
|
|
|
-// Room room = roomDao.findByRid(roomId);
|
|
|
-// if (room == null) {
|
|
|
-// roomMemberDao.deleteUserByRidAndUid(roomId, userId);
|
|
|
-// userDao.deleteByUid(userId);
|
|
|
-// return;
|
|
|
-// }
|
|
|
-//
|
|
|
-// if (roleEnum != RoleStudent && isUserDisplay(room, userId)) {
|
|
|
-// updateDisplay(roomId, userId, "", 0);
|
|
|
-// }
|
|
|
-// if (roomMemberDao.countByRid(roomId) == 1) {
|
|
|
-// roomMemberDao.deleteUserByRidAndUid(roomId, userId);
|
|
|
-// roomDao.deleteByRid(roomId);
|
|
|
-// deleteWhiteboardByUser(roomId, userId);
|
|
|
-// imHelper.dismiss(userId, roomId);
|
|
|
-// log.info("leaveRoomSuccess dismiss the room: {},userId: {}", roomId,userId);
|
|
|
-// } else {
|
|
|
-//// imHelper.quit(new String[]{userId}, roomId);
|
|
|
-// roomMemberDao.deleteUserByRidAndUid(roomId, userId);
|
|
|
-// MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Action_Leave, userId, roleEnum.getValue());
|
|
|
-// msg.setUserName(roomMember.getName());
|
|
|
-// imHelper.publishMessage(userId, roomId, msg);
|
|
|
+
|
|
|
+ if(roleEnum == RoleTeacher){
|
|
|
+ courseScheduleStudentPaymentDao.adjustPlayMidi(firstCourseId,null,null);
|
|
|
+ teacherAttendanceService.addTeacherAttendanceSignOut(firstCourseId.longValue(),Integer.parseInt(userId));
|
|
|
+ }else {
|
|
|
+ studentAttendanceService.addStudentAttendanceSignOut(firstCourseId.longValue(),Integer.parseInt(userId));
|
|
|
+ }
|
|
|
+ Room room = roomDao.findByRid(roomId);
|
|
|
+ if (room == null) {
|
|
|
+ roomMemberDao.deleteUserByRidAndUid(roomId, userId);
|
|
|
+ userDao.deleteByUid(userId);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (roleEnum != RoleStudent && isUserDisplay(room, userId)) {
|
|
|
+ updateDisplay(roomId, userId, "", 0);
|
|
|
+ }
|
|
|
+ if (roomMemberDao.countByRid(roomId) == 1) {
|
|
|
+ roomMemberDao.deleteUserByRidAndUid(roomId, userId);
|
|
|
+ roomDao.deleteByRid(roomId);
|
|
|
+ deleteWhiteboardByUser(roomId, userId);
|
|
|
+ imHelper.dismiss(userId, roomId);
|
|
|
+ log.info("leaveRoomSuccess dismiss the room: {},userId: {}", roomId,userId);
|
|
|
+ } else {
|
|
|
// imHelper.quit(new String[]{userId}, roomId);
|
|
|
-// log.info("leaveRoomSuccess quit group: roomId={},userId: {}", roomId,userId);
|
|
|
-// }
|
|
|
-// userDao.deleteByUid(userId);
|
|
|
+ roomMemberDao.deleteUserByRidAndUid(roomId, userId);
|
|
|
+ MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Action_Leave, userId, roleEnum.getValue());
|
|
|
+ msg.setUserName(roomMember.getName());
|
|
|
+ imHelper.publishMessage(userId, roomId, msg);
|
|
|
+ imHelper.quit(new String[]{userId}, roomId);
|
|
|
+ log.info("leaveRoomSuccess quit group: roomId={},userId: {}", roomId,userId);
|
|
|
+ }
|
|
|
+ userDao.deleteByUid(userId);
|
|
|
}
|
|
|
|
|
|
private void deleteWhiteboardByUser(String roomId, String userId) throws Exception {
|