|
@@ -8,7 +8,6 @@ import com.google.common.collect.Maps;
|
|
|
import com.microsvc.toolkit.middleware.rtc.RTCRoomPluginContext;
|
|
|
import com.microsvc.toolkit.middleware.rtc.RTCRoomPluginService;
|
|
|
import com.microsvc.toolkit.middleware.rtc.enums.EMemberAction;
|
|
|
-import com.microsvc.toolkit.middleware.rtc.enums.EMemberRole;
|
|
|
import com.microsvc.toolkit.middleware.rtc.impl.TencentCloudRTCPlugin;
|
|
|
import com.microsvc.toolkit.middleware.rtc.message.ImGroupMemberWrapper;
|
|
|
import com.microsvc.toolkit.middleware.rtc.message.RTCRoomMessage;
|
|
@@ -117,6 +116,8 @@ public class RoomServiceImpl implements RoomService {
|
|
|
private RedisTemplate<String, String> redisTemplate;
|
|
|
@Autowired
|
|
|
private RTCRoomPluginContext rtcRoomPluginContext;
|
|
|
+ @Autowired
|
|
|
+ private VipGroupDao vipGroupDao;
|
|
|
|
|
|
@Override
|
|
|
public Integer getCurrentCourseId(String roomId) {
|
|
@@ -337,6 +338,16 @@ public class RoomServiceImpl implements RoomService {
|
|
|
// RTC服务提供方
|
|
|
roomResult.setServiceProvider(Optional.ofNullable(courseSchedule.getServiceProvider()).orElse("rongCloud"));
|
|
|
|
|
|
+ // 课程人数
|
|
|
+ {
|
|
|
+ int studentNums = 1;
|
|
|
+ // 网管课
|
|
|
+ if (courseSchedule.getGroupType() == GroupType.VIP) {
|
|
|
+ studentNums = vipGroupDao.getCourseStudentNumsByGroupId(Long.parseLong(courseSchedule.getMusicGroupId()));
|
|
|
+ }
|
|
|
+ roomResult.setStudentNums(studentNums);
|
|
|
+ }
|
|
|
+
|
|
|
List<RoomMember> roomMemberList = roomMemberDao.findByRid(roomId);
|
|
|
if (roomMemberList != null && roomMemberList.size() > 0) {
|
|
|
Set<String> userIds = roomMemberList.stream().map(e -> e.getUid()).collect(Collectors.toSet());
|
|
@@ -635,7 +646,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
return roomMember;
|
|
|
}
|
|
|
|
|
|
- public String getRoomServiceProviter(String roomId ) {
|
|
|
+ public String getRoomServiceProvider(String roomId ) {
|
|
|
Integer firstCourseId = Integer.parseInt(roomId.substring(1));
|
|
|
CourseSchedule courseSchedule = courseScheduleDao.get(firstCourseId.longValue());
|
|
|
return courseSchedule.getServiceProvider();
|
|
@@ -904,7 +915,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
|
|
|
RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
|
|
|
|
|
|
- String roomServiceProviter = getRoomServiceProviter(roomId);
|
|
|
+ String roomServiceProviter = getRoomServiceProvider(roomId);
|
|
|
if (displayEnum.equals(DisplayEnum.None)) {
|
|
|
roomDao.updateDisplayByRid(roomId, "");
|
|
|
if (TencentCloudRTCPlugin.PLUGIN_NAME.equals(roomServiceProviter)) {
|
|
@@ -1065,7 +1076,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
|
|
|
RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
|
|
|
|
|
|
- String roomServiceProviter = getRoomServiceProviter(roomId);
|
|
|
+ String roomServiceProviter = getRoomServiceProvider(roomId);
|
|
|
if (TencentCloudRTCPlugin.PLUGIN_NAME.equals(roomServiceProviter)) {
|
|
|
|
|
|
sendDisplayMessage(display, roomMember);
|
|
@@ -1103,7 +1114,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
|
|
|
RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
|
|
|
|
|
|
- String roomServiceProviter = getRoomServiceProviter(roomId);
|
|
|
+ String roomServiceProviter = getRoomServiceProvider(roomId);
|
|
|
if (TencentCloudRTCPlugin.PLUGIN_NAME.equals(roomServiceProviter)) {
|
|
|
|
|
|
sendDisplayMessage(display, roomMember);
|
|
@@ -1237,6 +1248,8 @@ public class RoomServiceImpl implements RoomService {
|
|
|
.enable(enable)
|
|
|
.targetId(userId)
|
|
|
.targetName(authUser.getUsername())
|
|
|
+ .songId(Optional.ofNullable(data.getMusicScoreAccompanimentId()).map(String::valueOf).orElse(null))
|
|
|
+ .songVolume(data.getSoundVolume())
|
|
|
.sendUserInfo(RTCRoomMessage.MessageUser.builder()
|
|
|
.sendUserId(data.getSendUserId())
|
|
|
.sendUserName(data.getSendUserName())
|
|
@@ -1258,7 +1271,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
|
|
|
// 腾讯云消息推送
|
|
|
RTCRoomMessage message = RTCRoomMessage.builder()
|
|
|
- .objectName(RTCRoomMessage.DEVICE_MESSAGE)
|
|
|
+ .objectName(RTCRoomMessage.CONTROL_DEVICE_NOTIFY_MESSAGE)
|
|
|
.fromUserId(userId)
|
|
|
.toChatRoomId(roomId)
|
|
|
.content(messageContent)
|
|
@@ -1284,7 +1297,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
// 消息发送
|
|
|
if (TencentCloudRTCPlugin.PLUGIN_NAME.equals(pluginService.pluginName())) {
|
|
|
// 腾讯云推送
|
|
|
- pluginService.sendChatRoomMessage(message.objectName(RTCRoomMessage.DEVICE_MESSAGE).content(messageContent));
|
|
|
+ pluginService.sendChatRoomMessage(message.objectName(RTCRoomMessage.CONTROL_DEVICE_NOTIFY_MESSAGE).content(messageContent));
|
|
|
} else {
|
|
|
// 融云推送
|
|
|
imHelper.publishMessage(authUser.getId().toString(), roomId, deviceResourceMessage, 1);
|
|
@@ -1302,7 +1315,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
// 消息发送
|
|
|
if (TencentCloudRTCPlugin.PLUGIN_NAME.equals(pluginService.pluginName())) {
|
|
|
// 腾讯云推送
|
|
|
- pluginService.sendChatRoomMessage(message.objectName(RTCRoomMessage.DEVICE_MESSAGE).content(messageContent));
|
|
|
+ pluginService.sendChatRoomMessage(message.objectName(RTCRoomMessage.CONTROL_DEVICE_NOTIFY_MESSAGE).content(messageContent));
|
|
|
} else {
|
|
|
// 融云推送
|
|
|
imHelper.publishMessage(authUser.getId().toString(), roomId, deviceResourceMessage, 1);
|
|
@@ -1318,7 +1331,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
deviceResourceMessage.setSoundVolume(data.getSoundVolume());// 消息发送
|
|
|
if (TencentCloudRTCPlugin.PLUGIN_NAME.equals(pluginService.pluginName())) {
|
|
|
// 腾讯云推送
|
|
|
- pluginService.sendChatRoomMessage(message.objectName(RTCRoomMessage.DEVICE_MESSAGE).content(messageContent));
|
|
|
+ pluginService.sendChatRoomMessage(message.objectName(RTCRoomMessage.CONTROL_DEVICE_NOTIFY_MESSAGE).content(messageContent));
|
|
|
} else {
|
|
|
// 融云推送
|
|
|
imHelper.publishMessage(authUser.getId().toString(), roomId, deviceResourceMessage, 1);
|
|
@@ -1492,7 +1505,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
|
|
|
RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
|
|
|
|
|
|
- String roomServiceProviter = getRoomServiceProviter(roomId);
|
|
|
+ String roomServiceProviter = getRoomServiceProvider(roomId);
|
|
|
if (TencentCloudRTCPlugin.PLUGIN_NAME.equals(roomServiceProviter)) {
|
|
|
|
|
|
// 获取RTC服务提供方
|
|
@@ -1564,7 +1577,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
|
|
|
RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
|
|
|
|
|
|
- String roomServiceProviter = getRoomServiceProviter(roomId);
|
|
|
+ String roomServiceProviter = getRoomServiceProvider(roomId);
|
|
|
if (TencentCloudRTCPlugin.PLUGIN_NAME.equals(roomServiceProviter)) {
|
|
|
|
|
|
// 获取RTC服务提供方
|
|
@@ -2016,7 +2029,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
|
|
|
RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
|
|
|
|
|
|
- String roomServiceProviter = getRoomServiceProviter(roomId);
|
|
|
+ String roomServiceProviter = getRoomServiceProvider(roomId);
|
|
|
roomDao.updateDisplayByRid(roomId, display);
|
|
|
if (TencentCloudRTCPlugin.PLUGIN_NAME.equals(roomServiceProviter)) {
|
|
|
|
|
@@ -2133,7 +2146,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
|
|
|
|
|
|
// 获取RTC服务提供方
|
|
|
- RTCRoomPluginService pluginService = rtcRoomPluginContext.getPluginService(getRoomServiceProviter(roomId));
|
|
|
+ RTCRoomPluginService pluginService = rtcRoomPluginContext.getPluginService(getRoomServiceProvider(roomId));
|
|
|
if (TencentCloudRTCPlugin.PLUGIN_NAME.equals(pluginService.pluginName())) {
|
|
|
|
|
|
// 腾讯云RTC服务
|
|
@@ -2197,8 +2210,44 @@ public class RoomServiceImpl implements RoomService {
|
|
|
courseScheduleStudentMusicScoreDao.batchInsert(scheduleStudentMusicScores);
|
|
|
}
|
|
|
MusicScoreMessage musicScoreMessage = JSON.parseObject(JSON.toJSONString(accompaniment), MusicScoreMessage.class);
|
|
|
- MusicScoreDownloadMessageMessage msg = new MusicScoreDownloadMessageMessage(musicScoreMessage);
|
|
|
- imHelper.publishMessage(authUser.getId().toString(), roomId, msg, 0);
|
|
|
+ // 发送消息
|
|
|
+ String serviceProvider = getRoomServiceProvider(musicScoreData.getRoomId());
|
|
|
+ if (TencentCloudRTCPlugin.PLUGIN_NAME.equals(serviceProvider)) {
|
|
|
+
|
|
|
+ RTCRoomPluginService pluginService = rtcRoomPluginContext.getPluginService(serviceProvider);
|
|
|
+ // 腾讯消息推送
|
|
|
+ RTCRoomMessage.MessageContent messageContent = RTCRoomMessage.MessageContent
|
|
|
+ .builder()
|
|
|
+ .url(musicScoreMessage.getUrl())
|
|
|
+ .mp3Url(musicScoreMessage.getMp3Url())
|
|
|
+ .songId(String.valueOf(musicScoreMessage.getId()))
|
|
|
+ .speed(musicScoreMessage.getSpeed())
|
|
|
+ .sendUserInfo(RTCRoomMessage.MessageUser.builder()
|
|
|
+ .sendUserId(String.valueOf(authUser.getId()))
|
|
|
+ .sendUserName(authUser.getUsername())
|
|
|
+ .avatarUrl(authUser.getAvatar())
|
|
|
+ .build())
|
|
|
+ .build();
|
|
|
+
|
|
|
+ RTCRoomMessage roomMessage = RTCRoomMessage.builder()
|
|
|
+ .objectName(RTCRoomMessage.PLAY_MIDI_MESSAGE)
|
|
|
+ .content(messageContent)
|
|
|
+ .toChatRoomId(roomId)
|
|
|
+ .fromUserId(String.valueOf(authUser.getId()))
|
|
|
+ .isIncludeSender(1)
|
|
|
+ .isPersisted(1)
|
|
|
+ .build();
|
|
|
+
|
|
|
+ // 发送消息
|
|
|
+ pluginService.sendChatRoomMessage(roomMessage);
|
|
|
+
|
|
|
+ } else {
|
|
|
+
|
|
|
+ // 融云消息推送
|
|
|
+ MusicScoreDownloadMessageMessage msg = new MusicScoreDownloadMessageMessage(musicScoreMessage);
|
|
|
+ imHelper.publishMessage(authUser.getId().toString(), roomId, msg, 0);
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -2297,7 +2346,7 @@ public class RoomServiceImpl implements RoomService {
|
|
|
|
|
|
RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, senderId);
|
|
|
|
|
|
- String roomServiceProviter = getRoomServiceProviter(roomId);
|
|
|
+ String roomServiceProviter = getRoomServiceProvider(roomId);
|
|
|
if (TencentCloudRTCPlugin.PLUGIN_NAME.equals(roomServiceProviter)) {
|
|
|
|
|
|
sendDisplayMessage(display, roomMember);
|