|
@@ -12,6 +12,7 @@ import com.microsvc.toolkit.middleware.rtc.impl.RongCloudRTCPlugin;
|
|
|
import com.microsvc.toolkit.middleware.rtc.impl.TencentCloudRTCPlugin;
|
|
|
import com.microsvc.toolkit.middleware.rtc.message.ImGroupMemberWrapper;
|
|
|
import com.microsvc.toolkit.middleware.rtc.message.RTCRoomMessage;
|
|
|
+import com.microsvc.toolkit.middleware.rtc.message.TencentRequest;
|
|
|
import com.ym.common.ApiException;
|
|
|
import com.ym.common.BaseResponse;
|
|
|
import com.ym.common.DisplayEnum;
|
|
@@ -683,6 +684,9 @@ public class RoomServiceImpl implements RoomService {
|
|
|
// 生成群组
|
|
|
pluginService.chatRoomCreate(roomId, courseSchedule.getName(), courseSchedule.getTeacherId().toString());
|
|
|
|
|
|
+ // 更新群自定义字段
|
|
|
+ updateChatRoomGroupData(roomId, courseSchedule, pluginService);
|
|
|
+
|
|
|
// 群组老师信息
|
|
|
List<ImGroupMemberWrapper.ImGroupMember> groupMembers = Lists.newArrayList(ImGroupMemberWrapper.ImGroupMember
|
|
|
.builder()
|
|
@@ -723,6 +727,39 @@ public class RoomServiceImpl implements RoomService {
|
|
|
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 更新群自定义字段
|
|
|
+ * @param roomId 群ID
|
|
|
+ * @param courseSchedule CourseSchedule
|
|
|
+ * @param pluginService RTCRoomPluginService
|
|
|
+ */
|
|
|
+ private void updateChatRoomGroupData(String roomId, CourseSchedule courseSchedule, RTCRoomPluginService pluginService) {
|
|
|
+ // 生成群组自定义字段
|
|
|
+ List<TencentRequest.ChatRoomGroupDefinedData> definedDataList = Lists.newArrayList();
|
|
|
+
|
|
|
+ // 全员静音
|
|
|
+ definedDataList.add(TencentRequest.ChatRoomGroupDefinedData.builder()
|
|
|
+ .key("isMuteAll").value(courseSchedule.getMuteAll().toString())
|
|
|
+ .build());
|
|
|
+ // 取消静音
|
|
|
+ definedDataList.add(TencentRequest.ChatRoomGroupDefinedData.builder()
|
|
|
+ .key("cancelMuteFlag").value(courseSchedule.getCancelMuteFlag().toString())
|
|
|
+ .build());
|
|
|
+
|
|
|
+ if (CollectionUtils.isNotEmpty(definedDataList)) {
|
|
|
+
|
|
|
+ try {
|
|
|
+ pluginService.chatRoomGroupDefinedData(TencentRequest.ChatRoomGroup.builder()
|
|
|
+ .groupId(roomId)
|
|
|
+ .appDefinedData(definedDataList)
|
|
|
+ .build());
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("直播网管课自定义字段设置失败: roomId={}", roomId, e);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private void dismissImGroup(String userId,String roomId, String serviceProvider) throws Exception {
|
|
|
log.info("dismissImGroup: roomId = {}, userId = {}", roomId, userId);
|
|
|
String joinImGroupKey = "joinImGroup:" + roomId;
|
|
@@ -1805,9 +1842,16 @@ public class RoomServiceImpl implements RoomService {
|
|
|
}
|
|
|
data.setServiceProvider(courseSchedule.getServiceProvider());
|
|
|
|
|
|
- // 同步全员静音状态
|
|
|
- if (Objects.nonNull(data.getMicrophoneOn())) {
|
|
|
- courseScheduleDao.updateGroupMuteAllStatus(courseScheduleId, !data.getMicrophoneOn());
|
|
|
+ // 同步全员静音状态, 取消静音
|
|
|
+ if (Objects.nonNull(data.getMicrophoneOn()) || Objects.nonNull(data.getCancelMuteFlag())) {
|
|
|
+ courseScheduleDao.updateGroupMuteAllStatus(courseScheduleId, !data.getMicrophoneOn(), data.getCancelMuteFlag());
|
|
|
+
|
|
|
+ // 修改网管课群自定义属性
|
|
|
+ RTCRoomPluginService pluginService = rtcRoomPluginContext.getPluginService(courseSchedule.getServiceProvider());
|
|
|
+ if (Objects.nonNull(pluginService)) {
|
|
|
+ // 更新群自定义字段
|
|
|
+ updateChatRoomGroupData(data.getRoomId(), courseSchedule, pluginService);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
// 课程老师信息
|