|
@@ -1472,15 +1472,62 @@ public class RoomServiceImpl implements RoomService {
|
|
|
} else {
|
|
|
roomMemberDao.updateMicByRidAndUid(roomId, userId, taskInfo.isOnOff());
|
|
|
}
|
|
|
- ControlDeviceNotifyMessage msg = new ControlDeviceNotifyMessage(ActionEnum.Approve.ordinal());
|
|
|
- msg.setType(taskInfo.getTypeEnum().ordinal());
|
|
|
- msg.setOpUserId(userId);
|
|
|
- msg.setOpUserName(authUser.getUsername());
|
|
|
- imHelper.publishMessage(userId, taskInfo.getApplyUserId(), roomId, msg);
|
|
|
|
|
|
- DeviceStateChangedMessage deviceResourceMessage = new DeviceStateChangedMessage(taskInfo.getTypeEnum().ordinal(), taskInfo.isOnOff());
|
|
|
- deviceResourceMessage.setUserId(userId);
|
|
|
- imHelper.publishMessage(userId, roomId, deviceResourceMessage, 1);
|
|
|
+ RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
|
|
|
+
|
|
|
+ String roomServiceProviter = getRoomServiceProviter(roomId);
|
|
|
+ if (TencentCloudRTCPlugin.PLUGIN_NAME.equals(roomServiceProviter)) {
|
|
|
+
|
|
|
+ // 获取RTC服务提供方
|
|
|
+ RTCRoomPluginService pluginService = rtcRoomPluginContext.getPluginService(TencentCloudRTCPlugin.PLUGIN_NAME);
|
|
|
+ // 腾讯云RTC服务
|
|
|
+ RTCRoomMessage.MessageContent.MessageContentBuilder action = RTCRoomMessage.MessageContent.builder()
|
|
|
+ .type(ActionEnum.Approve.ordinal())
|
|
|
+ .enable(taskInfo.isOnOff())
|
|
|
+ .targetId(userId)
|
|
|
+ .targetName(authUser.getUsername())
|
|
|
+ .sendUserInfo(getSendUser(taskInfo.getApplyUserId(), RoleTeacher));
|
|
|
+
|
|
|
+
|
|
|
+ RTCRoomMessage roomMessage = RTCRoomMessage.builder()
|
|
|
+ .objectName(RTCRoomMessage.CONTROL_DEVICE_NOTIFY_MESSAGE)
|
|
|
+ .content(action.build())
|
|
|
+ .toChatRoomId(roomMember.getRid())
|
|
|
+ .fromUserId(roomMember.getUid())
|
|
|
+ .isIncludeSender(1)
|
|
|
+ .isPersisted(1)
|
|
|
+ .build();
|
|
|
+
|
|
|
+ pluginService.sendChatRoomMessage(roomMessage);
|
|
|
+
|
|
|
+ // 腾讯云RTC服务
|
|
|
+ action = RTCRoomMessage.MessageContent.builder()
|
|
|
+ .type(ActionEnum.Approve.ordinal())
|
|
|
+ .enable(taskInfo.isOnOff())
|
|
|
+ .sendUserInfo(getSendUser(roomMember.getUid(),RoleEnum.getEnumByValue(roomMember.getRole())));
|
|
|
+
|
|
|
+ // 腾讯云消息推送
|
|
|
+ RTCRoomMessage message = RTCRoomMessage.builder()
|
|
|
+ .objectName(RTCRoomMessage.DEVICE_MESSAGE)
|
|
|
+ .fromUserId(userId)
|
|
|
+ .toChatRoomId(roomId)
|
|
|
+ .content(action.build())
|
|
|
+ .isPersisted(1)
|
|
|
+ .isIncludeSender(0)
|
|
|
+ .build();
|
|
|
+
|
|
|
+ pluginService.sendChatRoomMessage(message);
|
|
|
+ } else {
|
|
|
+ ControlDeviceNotifyMessage msg = new ControlDeviceNotifyMessage(ActionEnum.Approve.ordinal());
|
|
|
+ msg.setType(taskInfo.getTypeEnum().ordinal());
|
|
|
+ msg.setOpUserId(userId);
|
|
|
+ msg.setOpUserName(authUser.getUsername());
|
|
|
+ imHelper.publishMessage(userId, taskInfo.getApplyUserId(), roomId, msg);
|
|
|
+
|
|
|
+ DeviceStateChangedMessage deviceResourceMessage = new DeviceStateChangedMessage(taskInfo.getTypeEnum().ordinal(), taskInfo.isOnOff());
|
|
|
+ deviceResourceMessage.setUserId(userId);
|
|
|
+ imHelper.publishMessage(userId, roomId, deviceResourceMessage, 1);
|
|
|
+ }
|
|
|
return true;
|
|
|
}
|
|
|
|
|
@@ -1497,7 +1544,36 @@ public class RoomServiceImpl implements RoomService {
|
|
|
msg.setType(taskInfo.getTypeEnum().ordinal());
|
|
|
msg.setOpUserId(userId);
|
|
|
msg.setOpUserName(authUser.getUsername());
|
|
|
- imHelper.publishMessage(userId, taskInfo.getApplyUserId(), roomId, msg);
|
|
|
+
|
|
|
+ RoomMember roomMember = roomMemberDao.findByRidAndUid(roomId, userId);
|
|
|
+
|
|
|
+ String roomServiceProviter = getRoomServiceProviter(roomId);
|
|
|
+ if (TencentCloudRTCPlugin.PLUGIN_NAME.equals(roomServiceProviter)) {
|
|
|
+
|
|
|
+ // 获取RTC服务提供方
|
|
|
+ RTCRoomPluginService pluginService = rtcRoomPluginContext.getPluginService(TencentCloudRTCPlugin.PLUGIN_NAME);
|
|
|
+
|
|
|
+ RTCRoomMessage.MessageContent.MessageContentBuilder action = RTCRoomMessage.MessageContent.builder()
|
|
|
+ .type(ActionEnum.Reject.ordinal())
|
|
|
+ .enable(taskInfo.isOnOff())
|
|
|
+ .targetId(userId)
|
|
|
+ .targetName(authUser.getUsername())
|
|
|
+ .sendUserInfo(getSendUser(taskInfo.getApplyUserId(), RoleTeacher));
|
|
|
+
|
|
|
+
|
|
|
+ RTCRoomMessage roomMessage = RTCRoomMessage.builder()
|
|
|
+ .objectName(RTCRoomMessage.CONTROL_DEVICE_NOTIFY_MESSAGE)
|
|
|
+ .content(action.build())
|
|
|
+ .toChatRoomId(roomMember.getRid())
|
|
|
+ .fromUserId(roomMember.getUid())
|
|
|
+ .isIncludeSender(1)
|
|
|
+ .isPersisted(1)
|
|
|
+ .build();
|
|
|
+
|
|
|
+ pluginService.sendChatRoomMessage(roomMessage);
|
|
|
+ } else {
|
|
|
+ imHelper.publishMessage(userId, taskInfo.getApplyUserId(), roomId, msg);
|
|
|
+ }
|
|
|
return true;
|
|
|
}
|
|
|
|