|
@@ -270,9 +270,9 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
|
|
}
|
|
}
|
|
|
|
|
|
private RTCRoomMessage.MessageUser getSendUser(SysUser sysUser,RoleEnum role) {
|
|
private RTCRoomMessage.MessageUser getSendUser(SysUser sysUser,RoleEnum role) {
|
|
-
|
|
|
|
|
|
+ String imUserId = imGroupService.getImUserId(sysUser.getId(), role);
|
|
RTCRoomMessage.MessageUser build = RTCRoomMessage.MessageUser.builder()
|
|
RTCRoomMessage.MessageUser build = RTCRoomMessage.MessageUser.builder()
|
|
- .sendUserId(sysUser.getId().toString())
|
|
|
|
|
|
+ .sendUserId(imUserId)
|
|
.sendUserName(sysUser.getUsername())
|
|
.sendUserName(sysUser.getUsername())
|
|
.avatarUrl(sysUser.getAvatar())
|
|
.avatarUrl(sysUser.getAvatar())
|
|
.build();
|
|
.build();
|
|
@@ -437,7 +437,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
|
|
.objectName(RTCRoomMessage.PLAY_MIDI_MESSAGE)
|
|
.objectName(RTCRoomMessage.PLAY_MIDI_MESSAGE)
|
|
.content(messageContent)
|
|
.content(messageContent)
|
|
.toChatRoomId(roomMember.getRoomId())
|
|
.toChatRoomId(roomMember.getRoomId())
|
|
- .fromUserId(roomMember.getImUserId())
|
|
|
|
|
|
+ .fromUserId(imUserId)
|
|
.isIncludeSender(1)
|
|
.isIncludeSender(1)
|
|
.isPersisted(1)
|
|
.isPersisted(1)
|
|
.build();
|
|
.build();
|
|
@@ -617,7 +617,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
|
|
CourseSchedule courseSchedule = courseScheduleService.getById(roomId);
|
|
CourseSchedule courseSchedule = courseScheduleService.getById(roomId);
|
|
SysUser teacher = sysUserService.findUserById(courseSchedule.getTeacherId());
|
|
SysUser teacher = sysUserService.findUserById(courseSchedule.getTeacherId());
|
|
if (Objects.nonNull(sysUser)) {
|
|
if (Objects.nonNull(sysUser)) {
|
|
- deviceControl.setSendUserId(teacher.getId().toString());
|
|
|
|
|
|
+ deviceControl.setSendUserId(imGroupService.getImUserId(teacher.getId(),RoleEnum.RoleTeacher));
|
|
deviceControl.setSendUserName(teacher.getRealName());
|
|
deviceControl.setSendUserName(teacher.getRealName());
|
|
deviceControl.setAvatar(teacher.getAvatar());
|
|
deviceControl.setAvatar(teacher.getAvatar());
|
|
}
|
|
}
|
|
@@ -627,7 +627,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
|
|
.builder()
|
|
.builder()
|
|
.type(deviceControl.getDeviceType().ordinal())
|
|
.type(deviceControl.getDeviceType().ordinal())
|
|
.enable(enable)
|
|
.enable(enable)
|
|
- .targetId(userId.toString())
|
|
|
|
|
|
+ .targetId(imUserId)
|
|
.targetName(sysUser.getUsername())
|
|
.targetName(sysUser.getUsername())
|
|
.songId(Optional.ofNullable(deviceControl.getMusicSheetAccompanimentId()).map(String::valueOf).orElse(null))
|
|
.songId(Optional.ofNullable(deviceControl.getMusicSheetAccompanimentId()).map(String::valueOf).orElse(null))
|
|
.songVolume(deviceControl.getSoundVolume())
|
|
.songVolume(deviceControl.getSoundVolume())
|
|
@@ -641,7 +641,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
|
|
// 腾讯云消息推送
|
|
// 腾讯云消息推送
|
|
RTCRoomMessage message = RTCRoomMessage.builder()
|
|
RTCRoomMessage message = RTCRoomMessage.builder()
|
|
.objectName(RTCRoomMessage.CONTROL_DEVICE_NOTIFY_MESSAGE)
|
|
.objectName(RTCRoomMessage.CONTROL_DEVICE_NOTIFY_MESSAGE)
|
|
- .fromUserId(userId.toString())
|
|
|
|
|
|
+ .fromUserId(imUserId)
|
|
.toChatRoomId(roomId)
|
|
.toChatRoomId(roomId)
|
|
.content(notifyContent)
|
|
.content(notifyContent)
|
|
.isPersisted(1)
|
|
.isPersisted(1)
|
|
@@ -682,7 +682,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
|
|
pluginService.sendChatRoomMessage(message.objectName(RTCRoomMessage.CONTROL_DEVICE_NOTIFY_MESSAGE).content(notifyContent));
|
|
pluginService.sendChatRoomMessage(message.objectName(RTCRoomMessage.CONTROL_DEVICE_NOTIFY_MESSAGE).content(notifyContent));
|
|
} else {
|
|
} else {
|
|
// 融云推送
|
|
// 融云推送
|
|
- imHelper.publishMessage(sysUser.getId().toString(), roomId, deviceResourceMessage, 1);
|
|
|
|
|
|
+ imHelper.publishMessage(deviceControl.getSendUserId(), roomId, deviceResourceMessage, 1);
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
case ACCOMPANIMENT:
|
|
case ACCOMPANIMENT:
|
|
@@ -700,7 +700,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
|
|
pluginService.sendChatRoomMessage(message.objectName(RTCRoomMessage.CONTROL_DEVICE_NOTIFY_MESSAGE).content(notifyContent));
|
|
pluginService.sendChatRoomMessage(message.objectName(RTCRoomMessage.CONTROL_DEVICE_NOTIFY_MESSAGE).content(notifyContent));
|
|
} else {
|
|
} else {
|
|
// 融云推送
|
|
// 融云推送
|
|
- imHelper.publishMessage(sysUser.getId().toString(), roomId, deviceResourceMessage, 1);
|
|
|
|
|
|
+ imHelper.publishMessage(deviceControl.getSendUserId(), roomId, deviceResourceMessage, 1);
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
default:
|
|
default:
|
|
@@ -713,9 +713,9 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
|
|
//邀请打开指定设备权限
|
|
//邀请打开指定设备权限
|
|
ImNetworkControlDeviceNotifyMessage message1 = new ImNetworkControlDeviceNotifyMessage(ImNetworkActionEnum.INVITE.ordinal());
|
|
ImNetworkControlDeviceNotifyMessage message1 = new ImNetworkControlDeviceNotifyMessage(ImNetworkActionEnum.INVITE.ordinal());
|
|
message1.setType(deviceControl.getDeviceType().ordinal());
|
|
message1.setType(deviceControl.getDeviceType().ordinal());
|
|
- message1.setOpUserId(sysUser.getId().toString());
|
|
|
|
|
|
+ message1.setOpUserId(deviceControl.getSendUserId());
|
|
message1.setOpUserName(sysUser.getUsername());
|
|
message1.setOpUserName(sysUser.getUsername());
|
|
- imHelper.publishMessage(sysUser.getId().toString(), imUserId, roomId, message1);
|
|
|
|
|
|
+ imHelper.publishMessage(deviceControl.getSendUserId(), imUserId, roomId, message1);
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
@@ -763,7 +763,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
|
|
if (Objects.nonNull(basicUserInfo)) {
|
|
if (Objects.nonNull(basicUserInfo)) {
|
|
deviceResourceMessage.setUserName(basicUserInfo.getUsername());
|
|
deviceResourceMessage.setUserName(basicUserInfo.getUsername());
|
|
}
|
|
}
|
|
- imHelper.publishMessage(sysUser.getId().toString(), roomId, deviceResourceMessage, 1);
|
|
|
|
|
|
+ imHelper.publishMessage(deviceControl.getSendUserId(), roomId, deviceResourceMessage, 1);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -850,7 +850,8 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
|
|
msg.setOpUserId(sysUser.getId().toString());
|
|
msg.setOpUserId(sysUser.getId().toString());
|
|
msg.setOpUserName(sysUser.getUsername());
|
|
msg.setOpUserName(sysUser.getUsername());
|
|
//获取老师编号
|
|
//获取老师编号
|
|
- imHelper.publishMessage(imUserId, courseSchedule.getTeacherId().toString(), deviceControl.getRoomId(), msg);
|
|
|
|
|
|
+ String imUserId1 = imGroupService.getImUserId(courseSchedule.getTeacherId(), RoleEnum.RoleTeacher);
|
|
|
|
+ imHelper.publishMessage(imUserId, imUserId1, deviceControl.getRoomId(), msg);
|
|
//发送设备状态变更消息
|
|
//发送设备状态变更消息
|
|
this.sendDeviceStateChangedMessage(deviceControl, imUserId);
|
|
this.sendDeviceStateChangedMessage(deviceControl, imUserId);
|
|
}
|
|
}
|
|
@@ -956,6 +957,7 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
|
|
SysUser sysUser = sysUserService.getUser();
|
|
SysUser sysUser = sysUserService.getUser();
|
|
|
|
|
|
CourseSchedule courseSchedule = courseScheduleService.getById(deviceControl.getRoomId());
|
|
CourseSchedule courseSchedule = courseScheduleService.getById(deviceControl.getRoomId());
|
|
|
|
+ String imUserId = imGroupService.getImUserId(sysUser.getId(), RoleEnum.RoleStudent);
|
|
if (TencentCloudRTCPlugin.PLUGIN_NAME.equals(courseSchedule.getServiceProvider())) {
|
|
if (TencentCloudRTCPlugin.PLUGIN_NAME.equals(courseSchedule.getServiceProvider())) {
|
|
|
|
|
|
// 获取RTC服务提供方
|
|
// 获取RTC服务提供方
|
|
@@ -964,16 +966,16 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
|
|
RTCRoomMessage.MessageContent.MessageContentBuilder action = RTCRoomMessage.MessageContent.builder()
|
|
RTCRoomMessage.MessageContent.MessageContentBuilder action = RTCRoomMessage.MessageContent.builder()
|
|
.type(ImNetworkActionEnum.REJECT.ordinal())
|
|
.type(ImNetworkActionEnum.REJECT.ordinal())
|
|
.enable(deviceControl.getEnable())
|
|
.enable(deviceControl.getEnable())
|
|
- .targetId(sysUser.getId().toString())
|
|
|
|
|
|
+ .targetId(imUserId)
|
|
.targetName(sysUser.getUsername())
|
|
.targetName(sysUser.getUsername())
|
|
- .sendUserInfo(getSendUser(sysUser, RoleEnum.RoleTeacher));
|
|
|
|
|
|
+ .sendUserInfo(getSendUser(sysUserService.findUserById(courseSchedule.getTeacherId()), RoleEnum.RoleTeacher));
|
|
|
|
|
|
|
|
|
|
RTCRoomMessage roomMessage = RTCRoomMessage.builder()
|
|
RTCRoomMessage roomMessage = RTCRoomMessage.builder()
|
|
.objectName(RTCRoomMessage.CONTROL_DEVICE_NOTIFY_MESSAGE)
|
|
.objectName(RTCRoomMessage.CONTROL_DEVICE_NOTIFY_MESSAGE)
|
|
.content(action.build())
|
|
.content(action.build())
|
|
.toChatRoomId(deviceControl.getRoomId())
|
|
.toChatRoomId(deviceControl.getRoomId())
|
|
- .fromUserId(sysUser.getId().toString())
|
|
|
|
|
|
+ .fromUserId(imUserId)
|
|
.isIncludeSender(1)
|
|
.isIncludeSender(1)
|
|
.isPersisted(1)
|
|
.isPersisted(1)
|
|
.build();
|
|
.build();
|
|
@@ -982,13 +984,11 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
|
|
} else {
|
|
} else {
|
|
ImNetworkControlDeviceNotifyMessage msg = new ImNetworkControlDeviceNotifyMessage(ImNetworkActionEnum.REJECT.ordinal());
|
|
ImNetworkControlDeviceNotifyMessage msg = new ImNetworkControlDeviceNotifyMessage(ImNetworkActionEnum.REJECT.ordinal());
|
|
msg.setType(deviceControl.getDeviceType().ordinal());
|
|
msg.setType(deviceControl.getDeviceType().ordinal());
|
|
- msg.setOpUserId(sysUser.getId().toString());
|
|
|
|
|
|
+ msg.setOpUserId(imUserId);
|
|
msg.setOpUserName(sysUser.getUsername());
|
|
msg.setOpUserName(sysUser.getUsername());
|
|
//获取老师编号
|
|
//获取老师编号
|
|
- Long teacherId = Optional.ofNullable(courseScheduleService.getById(deviceControl.getRoomId())).
|
|
|
|
- map(CourseSchedule::getTeacherId).
|
|
|
|
- orElseThrow(()->new BizException("房间信息不存在"));
|
|
|
|
- imHelper.publishMessage(sysUser.getId().toString(),teacherId.toString(), deviceControl.getRoomId(), msg);
|
|
|
|
|
|
+ String imUserId1 = imGroupService.getImUserId(courseSchedule.getTeacherId(), RoleEnum.RoleTeacher);
|
|
|
|
+ imHelper.publishMessage(imUserId,imUserId1, deviceControl.getRoomId(), msg);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -1077,16 +1077,17 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
|
|
// 获取RTC服务提供方
|
|
// 获取RTC服务提供方
|
|
RTCRoomPluginService pluginService = rtcRoomPluginContext.getPluginService(TencentCloudRTCPlugin.PLUGIN_NAME);
|
|
RTCRoomPluginService pluginService = rtcRoomPluginContext.getPluginService(TencentCloudRTCPlugin.PLUGIN_NAME);
|
|
// 腾讯云RTC服务
|
|
// 腾讯云RTC服务
|
|
|
|
+ RTCRoomMessage.MessageUser sendUser = getSendUser(sysUserService.findUserById(roomMember.getUserId()), RoleEnum.getEnumByValue(roomMember.getRole()));
|
|
RTCRoomMessage.MessageContent.MessageContentBuilder action = RTCRoomMessage.MessageContent.builder()
|
|
RTCRoomMessage.MessageContent.MessageContentBuilder action = RTCRoomMessage.MessageContent.builder()
|
|
.display(display)
|
|
.display(display)
|
|
- .sendUserInfo(getSendUser(sysUserService.findUserById(roomMember.getUserId()),RoleEnum.getEnumByValue(roomMember.getRole())));
|
|
|
|
|
|
+ .sendUserInfo(sendUser);
|
|
|
|
|
|
|
|
|
|
RTCRoomMessage roomMessage = RTCRoomMessage.builder()
|
|
RTCRoomMessage roomMessage = RTCRoomMessage.builder()
|
|
.objectName(RTCRoomMessage.DISPLAY_MESSAGE)
|
|
.objectName(RTCRoomMessage.DISPLAY_MESSAGE)
|
|
.content(action.build())
|
|
.content(action.build())
|
|
.toChatRoomId(roomMember.getRoomId())
|
|
.toChatRoomId(roomMember.getRoomId())
|
|
- .fromUserId(roomMember.getUserId().toString())
|
|
|
|
|
|
+ .fromUserId(sendUser.getSendUserId())
|
|
.isIncludeSender(1)
|
|
.isIncludeSender(1)
|
|
.isPersisted(1)
|
|
.isPersisted(1)
|
|
.build();
|
|
.build();
|
|
@@ -1178,20 +1179,4 @@ public class ImNetworkRoomServiceImpl extends ServiceImpl<ImNetworkRoomDao, ImNe
|
|
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
- private void dismissImGroup(String userId,String roomId, String serviceProvider) throws Exception {
|
|
|
|
- log.info("dismissImGroup: roomId = {}, userId = {}", roomId, userId);
|
|
|
|
- String joinImGroupKey = "joinImGroup:" + roomId;
|
|
|
|
- redisTemplate.delete(joinImGroupKey);
|
|
|
|
-
|
|
|
|
- RTCRoomPluginService pluginService = rtcRoomPluginContext.getPluginService(serviceProvider);
|
|
|
|
- if (TencentCloudRTCPlugin.PLUGIN_NAME.equals(pluginService.pluginName())) {
|
|
|
|
- // 腾讯云群销毁
|
|
|
|
- pluginService.chatRoomDestroy(roomId);
|
|
|
|
- } else {
|
|
|
|
- // 融云群销毁
|
|
|
|
- // 销毁群组
|
|
|
|
- imHelper.dismiss(userId, roomId);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
}
|
|
}
|