|
@@ -4,28 +4,21 @@ import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.alibaba.fastjson.serializer.SerializerFeature;
|
|
|
import com.ym.common.ApiException;
|
|
|
-import com.ym.common.BaseResponse;
|
|
|
import com.ym.common.DisplayEnum;
|
|
|
import com.ym.common.ErrorEnum;
|
|
|
import com.ym.config.IMProperties;
|
|
|
import com.ym.config.RoomProperties;
|
|
|
-import com.ym.dao.*;
|
|
|
import com.ym.job.ScheduleManager;
|
|
|
import com.ym.mec.auth.api.client.SysUserFeignService;
|
|
|
import com.ym.mec.auth.api.entity.SysUser;
|
|
|
import com.ym.mec.biz.dal.dao.*;
|
|
|
-import com.ym.mec.biz.dal.dao.CourseScheduleStudentMusicScoreDao;
|
|
|
-import com.ym.mec.biz.dal.dao.RoomDao;
|
|
|
-import com.ym.mec.biz.dal.dao.RoomMemberDao;
|
|
|
-import com.ym.mec.biz.dal.dao.UserDao;
|
|
|
-import com.ym.mec.biz.dal.dao.WhiteboardDao;
|
|
|
import com.ym.mec.biz.dal.dto.BasicUserDto;
|
|
|
import com.ym.mec.biz.dal.dto.RongyunBasicUserDto;
|
|
|
-import com.ym.mec.biz.dal.entity.*;
|
|
|
import com.ym.mec.biz.dal.entity.Room;
|
|
|
import com.ym.mec.biz.dal.entity.RoomMember;
|
|
|
import com.ym.mec.biz.dal.entity.UserInfo;
|
|
|
import com.ym.mec.biz.dal.entity.Whiteboard;
|
|
|
+import com.ym.mec.biz.dal.entity.*;
|
|
|
import com.ym.mec.biz.dal.enums.GroupType;
|
|
|
import com.ym.mec.biz.dal.enums.TeachModeEnum;
|
|
|
import com.ym.mec.biz.service.StudentAttendanceService;
|
|
@@ -131,13 +124,10 @@ public class RoomServiceImpl implements RoomService {
|
|
|
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
|
|
|
@Override
|
|
|
public RoomResult joinRoom(String roomId) throws Exception {
|
|
|
- CheckUtils.checkArgument(roomId != null, "roomId must't be null");
|
|
|
-
|
|
|
SysUser sysUser = sysUserFeignService.queryUserInfo();
|
|
|
String userId = sysUser.getId().toString();
|
|
|
log.info("joinRoom: roomId={}, userId={}", roomId, userId);
|
|
|
|
|
|
- Teacher teacher = teacherDao.get(Integer.parseInt(userId));
|
|
|
CourseSchedule courseSchedule = courseScheduleDao.get(Long.parseLong(roomId));
|
|
|
if(courseSchedule.getTeachMode() == TeachModeEnum.OFFLINE){
|
|
|
throw new ApiException(ErrorEnum.JOIN_ROOM_ERROR);
|
|
@@ -180,17 +170,16 @@ public class RoomServiceImpl implements RoomService {
|
|
|
|
|
|
RoleEnum roleEnum;
|
|
|
|
|
|
-
|
|
|
RoomResult.MemberResult userResult = new RoomResult.MemberResult();
|
|
|
RoomMember member = roomMemberDao.findOne(roomId, userId);
|
|
|
String userName;
|
|
|
if (member == null) {
|
|
|
- int count = roomMemberDao.countRoomMember(roomId, RoleEnum.RoleAudience.getValue());
|
|
|
+ int count = roomMemberDao.countRoomMember(roomId);
|
|
|
if (count == roomProperties.getMaxCount()) {
|
|
|
log.info("join error Over max count: roomId = {}, userId = {}", roomId,userId);
|
|
|
throw new ApiException(ErrorEnum.ERR_OVER_MAX_COUNT);
|
|
|
}
|
|
|
- if(teacher != null && teacher.getId().equals(courseSchedule.getActualTeacherId())){
|
|
|
+ if(sysUser.getId().equals(courseSchedule.getActualTeacherId())){
|
|
|
roleEnum = RoleTeacher;
|
|
|
userName = sysUser.getRealName();
|
|
|
}else {
|
|
@@ -494,7 +483,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
if (roleEnum != RoleStudent && isUserDisplay(room, userId)) {
|
|
|
updateDisplay(roomId, userId, "", 0);
|
|
|
}
|
|
|
- if (roomMemberDao.countRoomMember(roomId,null) <= 1) {
|
|
|
+ if (roomMemberDao.countRoomMember(roomId) <= 1) {
|
|
|
roomMemberDao.deleteRoomMember(roomId, userId);
|
|
|
roomDao.deleteRoom(roomId);
|
|
|
deleteWhiteboardByUser(roomId, userId);
|
|
@@ -1166,7 +1155,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
SysUser authUser = sysUserFeignService.queryUserInfo();
|
|
|
String userId = authUser.getId().toString();
|
|
|
|
|
|
- int count = roomMemberDao.countRoomMember(roomId, RoleEnum.RoleAudience.getValue());
|
|
|
+ int count = roomMemberDao.countRoomMember(roomId);
|
|
|
if (count == roomProperties.getMaxCount()) {
|
|
|
log.error("approveSpeech error: roomId = {}, ticket={}", roomId, ticket);
|
|
|
throw new ApiException(ErrorEnum.ERR_OVER_MAX_COUNT);
|
|
@@ -1230,7 +1219,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
|
|
|
public void checkOverMax(String roomId, RoomMember targetUser, int targetRole) {
|
|
|
if (RoleEnum.getEnumByValue(targetUser.getRole()).equals(RoleEnum.RoleAudience)) {
|
|
|
- int count = roomMemberDao.countRoomMember(roomId, RoleEnum.RoleAudience.getValue());
|
|
|
+ int count = roomMemberDao.countRoomMember(roomId);
|
|
|
if (count == roomProperties.getMaxCount()) {
|
|
|
log.error("assign error: roomId = {}, userId = {}, role = {}", roomId, targetUser.getRid(), targetUser.getRole());
|
|
|
throw new ApiException(ErrorEnum.ERR_OVER_MAX_COUNT);
|
|
@@ -1328,13 +1317,16 @@ public class RoomServiceImpl implements RoomService {
|
|
|
public Boolean approveUpgradeRole(String roomId, String ticket) throws Exception {
|
|
|
CheckUtils.checkArgument(roomId != null, "roomId must't be null");
|
|
|
CheckUtils.checkArgument(ticket != null, "ticket must't be null");
|
|
|
- CheckUtils.checkArgument(roomDao.existsByRid(roomId), "room not exist");
|
|
|
+ Room room = roomDao.findOne(roomId);
|
|
|
+ if(room == null){
|
|
|
+ throw new BizException("房间信息不存在");
|
|
|
+ }
|
|
|
SysUser authUser = sysUserFeignService.queryUserInfo();
|
|
|
String userId = authUser.getId().toString();
|
|
|
UpgradeRoleTaskInfo taskInfo = (UpgradeRoleTaskInfo) scheduleManager.executeTask(ticket);
|
|
|
log.info("approveUpgradeRole roomId = {}, task={}", roomId, taskInfo);
|
|
|
|
|
|
- RoomMember targetUser = roomMemberDao.findByRidAndUid(roomId, userId);
|
|
|
+ RoomMember targetUser = roomMemberDao.findOne(roomId, userId);
|
|
|
if (targetUser == null) {
|
|
|
throw new ApiException(ErrorEnum.ERR_USER_NOT_EXIST_IN_ROOM);
|
|
|
}
|
|
@@ -1343,7 +1335,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
}
|
|
|
|
|
|
checkOverMax(roomId, targetUser, taskInfo.getRole().getValue());
|
|
|
- roomMemberDao.updateRoleByRidAndUid(roomId, userId, taskInfo.getRole().getValue());
|
|
|
+ roomMemberDao.updateByRidAndUid(roomId, userId, taskInfo.getRole().getValue());
|
|
|
|
|
|
UpgradeRoleMessage msg = new UpgradeRoleMessage(ActionEnum.Approve.ordinal());
|
|
|
|
|
@@ -1371,7 +1363,10 @@ public class RoomServiceImpl implements RoomService {
|
|
|
public Boolean rejectUpgradeRole(String roomId, String ticket) throws Exception {
|
|
|
CheckUtils.checkArgument(roomId != null, "roomId must't be null");
|
|
|
CheckUtils.checkArgument(ticket != null, "ticket must't be null");
|
|
|
- CheckUtils.checkArgument(roomDao.existsByRid(roomId), "room not exist");
|
|
|
+ Room room = roomDao.findOne(roomId);
|
|
|
+ if(room == null){
|
|
|
+ throw new BizException("房间信息不存在");
|
|
|
+ }
|
|
|
SysUser authUser = sysUserFeignService.queryUserInfo();
|
|
|
String userId = authUser.getId().toString();
|
|
|
UpgradeRoleTaskInfo taskInfo = (UpgradeRoleTaskInfo) scheduleManager.executeTask(ticket);
|
|
@@ -1393,13 +1388,18 @@ public class RoomServiceImpl implements RoomService {
|
|
|
|
|
|
CheckUtils.checkArgument(roomId != null, "roomId must't be null");
|
|
|
CheckUtils.checkArgument(targetUserId != null, "userId must't be null");
|
|
|
- CheckUtils.checkArgument(roomDao.existsByRid(roomId), "room not exist");
|
|
|
+ Room room = roomDao.findOne(roomId);
|
|
|
+ if(room == null){
|
|
|
+ throw new BizException("房间信息不存在");
|
|
|
+ }
|
|
|
CheckUtils.checkArgument(RoleEnum.getEnumByValue(targetRole).equals(RoleTeacher), "only set to teacher");
|
|
|
- CheckUtils.checkArgument(roomMemberDao.existsByRidAndUid(roomId, targetUserId), "room member not exist");
|
|
|
+ RoomMember targetUser = roomMemberDao.findOne(roomId, targetUserId);
|
|
|
+ if(targetUser == null){
|
|
|
+ throw new BizException("用户不在房间");
|
|
|
+ }
|
|
|
SysUser authUser = sysUserFeignService.queryUserInfo();
|
|
|
String userId = authUser.getId().toString();
|
|
|
|
|
|
- RoomMember targetUser = roomMemberDao.findByRidAndUid(roomId, targetUserId);
|
|
|
if (targetUser == null) {
|
|
|
throw new ApiException(ErrorEnum.ERR_USER_NOT_EXIST_IN_ROOM);
|
|
|
} else {
|
|
@@ -1413,11 +1413,11 @@ public class RoomServiceImpl implements RoomService {
|
|
|
List<RoleChangedMessage.ChangedUser> changedUserList = new ArrayList<>();
|
|
|
RoleChangedMessage msg = new RoleChangedMessage(userId);
|
|
|
|
|
|
- List<RoomMember> teachers = roomMemberDao.findByRidAndRole(roomId, RoleTeacher.getValue());
|
|
|
+ List<RoomMember> teachers = roomMemberDao.queryRoomMember(roomId,null, RoleTeacher.getValue());
|
|
|
if (!teachers.isEmpty()) {
|
|
|
- roomMemberDao.updateRoleByRidAndUid(roomId, teachers.get(0).getUid(), RoleStudent.getValue());
|
|
|
+ roomMemberDao.updateByRidAndUid(roomId, teachers.get(0).getUid(), RoleStudent.getValue());
|
|
|
RoleChangedMessage.ChangedUser user = new RoleChangedMessage.ChangedUser(teachers.get(0).getUid(), RoleStudent.getValue());
|
|
|
- UserInfo userInfo = userDao.findByUid(teachers.get(0).getUid());
|
|
|
+ UserInfo userInfo = userDao.findOne(teachers.get(0).getUid());
|
|
|
if (userInfo != null) {
|
|
|
user.setUserName(userInfo.getName());
|
|
|
}
|
|
@@ -1426,9 +1426,9 @@ public class RoomServiceImpl implements RoomService {
|
|
|
log.info("change directly cause no teacher exist in room, roomId={}", roomId);
|
|
|
}
|
|
|
|
|
|
- roomMemberDao.updateRoleByRidAndUid(roomId, targetUserId, targetRole);
|
|
|
+ roomMemberDao.updateByRidAndUid(roomId, targetUserId, targetRole);
|
|
|
RoleChangedMessage.ChangedUser user = new RoleChangedMessage.ChangedUser(targetUserId, targetRole);
|
|
|
- UserInfo userInfo = userDao.findByUid(targetUserId);
|
|
|
+ UserInfo userInfo = userDao.findOne(targetUserId);
|
|
|
if (userInfo != null) {
|
|
|
user.setUserName(userInfo.getName());
|
|
|
}
|
|
@@ -1438,10 +1438,9 @@ public class RoomServiceImpl implements RoomService {
|
|
|
|
|
|
String display = "display://type=1?userId=" + targetUserId + "?uri=";
|
|
|
DisplayMessage displayMessage = new DisplayMessage(display);
|
|
|
- roomDao.updateDisplayByRid(roomId, display);
|
|
|
+ roomDao.updateRoom(roomId, display,null,null);
|
|
|
imHelper.publishMessage(userId, roomId, displayMessage, 1);
|
|
|
log.info("changeRole, display changed: roomId={}, {}, targetUserId={}", roomId, display, targetUserId);
|
|
|
-
|
|
|
return true;
|
|
|
}
|
|
|
|
|
@@ -1462,7 +1461,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
log.info("memberOnlineStatus, userId={}, status={}", userId, status);
|
|
|
//1:offline 离线; 0: online 在线
|
|
|
if (s == 1) {
|
|
|
- List<RoomMember> members = roomMemberDao.findByUid(userId);
|
|
|
+ List<RoomMember> members = roomMemberDao.queryRoomMember(null,userId,null);
|
|
|
if (!members.isEmpty()) {
|
|
|
scheduleManager.userIMOffline(userId);
|
|
|
}
|
|
@@ -1477,13 +1476,13 @@ public class RoomServiceImpl implements RoomService {
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public void userIMOfflineKick(String userId) {
|
|
|
- List<RoomMember> members = roomMemberDao.findByUid(userId);
|
|
|
+ List<RoomMember> members = roomMemberDao.queryRoomMember(null,userId,null);
|
|
|
for (RoomMember member : members) {
|
|
|
int userRole = member.getRole();
|
|
|
log.info("userIMOfflineKick: roomId={}, {}, role={}", member.getRid(), userId, RoleEnum.getEnumByValue(userRole));
|
|
|
try {
|
|
|
if (userRole == RoleTeacher.getValue() || userRole == RoleEnum.RoleAssistant.getValue()) {
|
|
|
- Room room = roomDao.findByRid(member.getRid());
|
|
|
+ Room room = roomDao.findOne(member.getRid());
|
|
|
if (room == null) {
|
|
|
break;
|
|
|
}
|
|
@@ -1492,12 +1491,12 @@ public class RoomServiceImpl implements RoomService {
|
|
|
log.info("memberOnlineStatus offline: roomId={}, {}", member.getRid(), member.getUid());
|
|
|
}
|
|
|
}
|
|
|
- if (roomMemberDao.countByRid(member.getRid()) == 1) {
|
|
|
+ if (roomMemberDao.countRoomMember(member.getRid()) == 1) {
|
|
|
IMApiResultInfo apiResultInfo = null;
|
|
|
apiResultInfo = imHelper.dismiss(member.getUid(), member.getRid());
|
|
|
if (apiResultInfo.getCode() == 200) {
|
|
|
- roomMemberDao.deleteUserByRidAndUid(member.getRid(), member.getUid());
|
|
|
- roomDao.deleteByRid(member.getRid());
|
|
|
+ roomMemberDao.deleteRoomMember(member.getRid(), member.getUid());
|
|
|
+ roomDao.deleteRoom(member.getRid());
|
|
|
deleteWhiteboardByUser(member.getRid(), member.getUid());
|
|
|
log.info("dismiss the room: {},userId: {}", member.getRid(),userId);
|
|
|
} else {
|
|
@@ -1507,7 +1506,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
IMApiResultInfo apiResultInfo = null;
|
|
|
apiResultInfo = imHelper.quit(new String[]{member.getUid()}, member.getRid());
|
|
|
if (apiResultInfo.isSuccess()) {
|
|
|
- roomMemberDao.deleteUserByRidAndUid(member.getRid(), member.getUid());
|
|
|
+ roomMemberDao.deleteRoomMember(member.getRid(), member.getUid());
|
|
|
MemberChangedMessage msg = new MemberChangedMessage(MemberChangedMessage.Action_Leave, member.getUid(), userRole);
|
|
|
msg.setUserName(member.getName());
|
|
|
imHelper.publishMessage(member.getUid(), member.getRid(), msg);
|
|
@@ -1517,7 +1516,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
log.error("{} exit {} room error: {}", member.getUid(), member.getRid(), apiResultInfo.getErrorMessage());
|
|
|
}
|
|
|
}
|
|
|
- userDao.deleteByUid(member.getUid());
|
|
|
+ userDao.deleteUser(member.getUid());
|
|
|
} catch (Exception e) {
|
|
|
log.error("userIMOfflineKick error: userId={}", userId);
|
|
|
}
|
|
@@ -1669,7 +1668,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
}
|
|
|
|
|
|
public void updateDisplay(String roomId, String senderId, String display, Integer isIncludeSender) throws Exception {
|
|
|
- roomDao.updateDisplayByRid(roomId, display);
|
|
|
+ roomDao.updateRoom(roomId, display,null,null);
|
|
|
DisplayMessage displayMessage = new DisplayMessage(display);
|
|
|
imHelper.publishMessage(senderId, roomId, displayMessage, isIncludeSender);
|
|
|
}
|