|
@@ -234,11 +234,15 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
|
|
|
// 用户ID
|
|
|
long userId = Long.parseLong(values[0]);
|
|
|
|
|
|
+
|
|
|
// 客户端类型
|
|
|
+ UserRoleEnum userRole = UserRoleEnum.TEACHER;
|
|
|
ClientEnum clientType = ClientEnum.TEACHER;
|
|
|
if (values.length > 1 && ClientEnum.STUDENT.match(values[1])) {
|
|
|
|
|
|
clientType = ClientEnum.STUDENT;
|
|
|
+
|
|
|
+ userRole = UserRoleEnum.STUDENT;
|
|
|
}
|
|
|
|
|
|
log.info("quitRoomSuccess: roomId={}, userId={}", roomId, userId);
|
|
@@ -248,7 +252,8 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
|
|
|
log.info("quitRoomSuccess break: roomId={}, userId={}", roomId, userId);
|
|
|
return;
|
|
|
}
|
|
|
- ImNetworkRoomMember roomMember = imNetworkRoomMemberService.getDao().findByRidAndUid(roomId, userId);
|
|
|
+
|
|
|
+ ImNetworkRoomMember roomMember = imNetworkRoomMemberService.getDao().findByRidAndUid(roomId, userId, userRole.ordinal());
|
|
|
if(Objects.isNull(roomMember)){
|
|
|
return;
|
|
|
}
|
|
@@ -436,11 +441,20 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
|
|
|
// 老师信息
|
|
|
SysUser sysUser = sysUserService.getUser();
|
|
|
String roomId = deviceControl.getRoomId();
|
|
|
+
|
|
|
+ String[] values = deviceControl.getUserId().split(":");
|
|
|
// 学生信息
|
|
|
- Long userId = Long.parseLong(deviceControl.getUserId().split(":")[0]);
|
|
|
+ Long userId = Long.parseLong(values[0]);
|
|
|
Boolean enable = deviceControl.getEnable();
|
|
|
log.info("controlDevice: roomId:{} ,deviceType:{} ,enable:{} ,userId:{}", roomId,deviceControl.getDeviceType(),enable,userId);
|
|
|
|
|
|
+ UserRoleEnum userRole = UserRoleEnum.TEACHER;
|
|
|
+ ClientEnum clientType = ClientEnum.TEACHER;
|
|
|
+ if (values.length > 1 && ClientEnum.STUDENT.match(values[1])) {
|
|
|
+ clientType = ClientEnum.STUDENT;
|
|
|
+
|
|
|
+ userRole = UserRoleEnum.STUDENT;
|
|
|
+ }
|
|
|
// IM用户ID
|
|
|
String imUserId = deviceControl.getUserId();
|
|
|
|
|
@@ -489,7 +503,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
|
|
|
break;
|
|
|
}
|
|
|
}else {
|
|
|
- ImNetworkRoomMember roomMember = Optional.ofNullable(imNetworkRoomMemberService.getDao().findByRidAndUid(roomId, userId))
|
|
|
+ ImNetworkRoomMember roomMember = Optional.ofNullable(imNetworkRoomMemberService.getDao().findByRidAndUid(roomId, userId, clientType.ordinal()))
|
|
|
.orElseThrow(()-> new BizException("用户不在房间内"));
|
|
|
long scheduleId = Long.parseLong(roomId);
|
|
|
switch (deviceControl.getDeviceType()) {
|
|
@@ -538,11 +552,15 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
|
|
|
SysUser sysUser = sysUserService.getUser();
|
|
|
|
|
|
String imUserId = String.valueOf(sysUser.getId());
|
|
|
+ UserRoleEnum userRole = UserRoleEnum.TEACHER;
|
|
|
if (ClientEnum.STUDENT == deviceControl.getClientType()) {
|
|
|
imUserId = MessageFormat.format("{0}:{1}", imUserId, ClientEnum.STUDENT.name());
|
|
|
+
|
|
|
+ userRole = UserRoleEnum.STUDENT;
|
|
|
}
|
|
|
|
|
|
- ImNetworkRoomMember roomMember = Optional.ofNullable(imNetworkRoomMemberService.getDao().findByRidAndUid(deviceControl.getRoomId(), sysUser.getId())).
|
|
|
+ ImNetworkRoomMember roomMember = Optional.ofNullable(imNetworkRoomMemberService.getDao().findByRidAndUid(deviceControl.getRoomId(), sysUser.getId(),
|
|
|
+ userRole.ordinal())).
|
|
|
orElseThrow(()-> new BizException("用户不在房间内"));
|
|
|
switch (deviceControl.getDeviceType()) {
|
|
|
case CAMERA:
|
|
@@ -582,14 +600,17 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
|
|
|
log.info("deviceStatusSync: enable:{} ,roomId:{} ,deviceType:{}", deviceStatusSync.getEnable(),deviceStatusSync.getRoomId(),deviceStatusSync.getDeviceType());
|
|
|
Long userId = sysUserService.getUserId();
|
|
|
|
|
|
+ UserRoleEnum userRole = UserRoleEnum.TEACHER;
|
|
|
String imUserId = String.valueOf(userId);
|
|
|
if (ClientEnum.STUDENT == deviceStatusSync.getClientType()) {
|
|
|
imUserId = MessageFormat.format("{0}:{1}", imUserId, ClientEnum.STUDENT.name());
|
|
|
+
|
|
|
+ userRole = UserRoleEnum.STUDENT;
|
|
|
}
|
|
|
|
|
|
ImNetworkDeviceTypeEnum deviceType = deviceStatusSync.getDeviceType();
|
|
|
ImNetworkRoomMember roomMember = Optional.ofNullable(imNetworkRoomMemberService.getDao().
|
|
|
- findByRidAndUid(deviceStatusSync.getRoomId(), userId))
|
|
|
+ findByRidAndUid(deviceStatusSync.getRoomId(), userId, userRole.ordinal()))
|
|
|
.orElseThrow(()-> new BizException("用户不在房间内"));
|
|
|
switch (deviceType) {
|
|
|
case CAMERA:
|