Commit 5bdfd44c by Future

多人音视频邀请调整

parent ff9cdce9
...@@ -75,6 +75,7 @@ public class MultiMeetServiceImpl implements MultiMeetService { ...@@ -75,6 +75,7 @@ public class MultiMeetServiceImpl implements MultiMeetService {
} }
List<RoomMemberDto> members = Lists.newArrayList(); List<RoomMemberDto> members = Lists.newArrayList();
ImMultiRtcRoom rtcRoom = imMultiRtcRoomService.getCachedMultiRtcRoom(currentClient.getFkAppid(), param.getRoomId()); ImMultiRtcRoom rtcRoom = imMultiRtcRoomService.getCachedMultiRtcRoom(currentClient.getFkAppid(), param.getRoomId());
List<ImMultiRtcRoomMember> roomMembersToSave = Lists.newArrayList();
if (rtcRoom == null) { if (rtcRoom == null) {
rtcRoom = new ImMultiRtcRoom(); rtcRoom = new ImMultiRtcRoom();
rtcRoom.setId(SnowflakeUtil.getId()); rtcRoom.setId(SnowflakeUtil.getId());
...@@ -84,7 +85,21 @@ public class MultiMeetServiceImpl implements MultiMeetService { ...@@ -84,7 +85,21 @@ public class MultiMeetServiceImpl implements MultiMeetService {
rtcRoom.setCreateTime(new Date()); rtcRoom.setCreateTime(new Date());
rtcRoom.setUpdateTime(new Date()); rtcRoom.setUpdateTime(new Date());
imMultiRtcRoomService.save(rtcRoom); imMultiRtcRoomService.save(rtcRoom);
// 将邀请人存入房间成员
ImMultiRtcRoomMember roomMember = new ImMultiRtcRoomMember();
roomMember.setId(SnowflakeUtil.getId());
roomMember.setFkRtcRoomId(rtcRoom.getId());
roomMember.setRoomId(param.getRoomId());
roomMember.setFkClientId(currentClient.getId());
roomMember.setClientId(currentClient.getClientId());
roomMember.setState(MultiRtcMemberStateEnum.ANSWERED.getCode());
roomMember.setCallTime(new Date());
roomMember.setHeartbeatTime(new Date());
roomMember.setCreateTime(new Date());
roomMember.setUpdateTime(new Date());
roomMembersToSave.add(roomMember);
} else { } else {
// 取得历史成员列表
List<ImMultiRtcRoomMember> rtcRoomMemberList = imMultiRtcRoomMemberService.list( List<ImMultiRtcRoomMember> rtcRoomMemberList = imMultiRtcRoomMemberService.list(
new QueryWrapper<ImMultiRtcRoomMember>().lambda() new QueryWrapper<ImMultiRtcRoomMember>().lambda()
.eq(ImMultiRtcRoomMember::getFkRtcRoomId, rtcRoom.getId()) .eq(ImMultiRtcRoomMember::getFkRtcRoomId, rtcRoom.getId())
...@@ -98,7 +113,6 @@ public class MultiMeetServiceImpl implements MultiMeetService { ...@@ -98,7 +113,6 @@ public class MultiMeetServiceImpl implements MultiMeetService {
members.add(roomMemberDto); members.add(roomMemberDto);
} }
} }
List<ImMultiRtcRoomMember> roomMembersToSave = Lists.newArrayList();
for (String toClientId : param.getToClients()) { for (String toClientId : param.getToClients()) {
ImClient toClient = imClientService.getCacheImClient(currentClient.getFkAppid(), toClientId); ImClient toClient = imClientService.getCacheImClient(currentClient.getFkAppid(), toClientId);
if (toClient == null) { if (toClient == null) {
...@@ -108,7 +122,7 @@ public class MultiMeetServiceImpl implements MultiMeetService { ...@@ -108,7 +122,7 @@ public class MultiMeetServiceImpl implements MultiMeetService {
// 占线 通知邀请方 // 占线 通知邀请方
List<ImMultiRtcRoomMember> busyMember = imMultiRtcRoomMemberService.list(new QueryWrapper<ImMultiRtcRoomMember>().lambda() List<ImMultiRtcRoomMember> busyMember = imMultiRtcRoomMemberService.list(new QueryWrapper<ImMultiRtcRoomMember>().lambda()
.eq(ImMultiRtcRoomMember::getClientId, toClientId) .eq(ImMultiRtcRoomMember::getClientId, toClientId)
.in(ImMultiRtcRoomMember::getState, Lists.newArrayList(MultiRtcMemberStateEnum.ANSWERED.getCode(), MultiRtcMemberStateEnum.CALLING.getCode()))); .in(ImMultiRtcRoomMember::getState, Lists.newArrayList(MultiRtcMemberStateEnum.ANSWERED.getCode())));
if (CollectionUtils.isNotEmpty(busyMember)) { if (CollectionUtils.isNotEmpty(busyMember)) {
MultiMeetBusyResponse multiMeetBusyResponse = new MultiMeetBusyResponse(); MultiMeetBusyResponse multiMeetBusyResponse = new MultiMeetBusyResponse();
multiMeetBusyResponse.setConversationId(param.getConversationId()); multiMeetBusyResponse.setConversationId(param.getConversationId());
...@@ -146,19 +160,6 @@ public class MultiMeetServiceImpl implements MultiMeetService { ...@@ -146,19 +160,6 @@ public class MultiMeetServiceImpl implements MultiMeetService {
roomMemberDto.setState(MultiRtcMemberStateEnum.CALLING.getCode()); roomMemberDto.setState(MultiRtcMemberStateEnum.CALLING.getCode());
members.add(roomMemberDto); members.add(roomMemberDto);
} }
// 将邀请人存入房间成员
ImMultiRtcRoomMember roomMember = new ImMultiRtcRoomMember();
roomMember.setId(SnowflakeUtil.getId());
roomMember.setFkRtcRoomId(rtcRoom.getId());
roomMember.setRoomId(param.getRoomId());
roomMember.setFkClientId(currentClient.getId());
roomMember.setClientId(currentClient.getClientId());
roomMember.setState(MultiRtcMemberStateEnum.ANSWERED.getCode());
roomMember.setCallTime(new Date());
roomMember.setHeartbeatTime(new Date());
roomMember.setCreateTime(new Date());
roomMember.setUpdateTime(new Date());
roomMembersToSave.add(roomMember);
imMultiRtcRoomMemberService.saveBatch(roomMembersToSave); imMultiRtcRoomMemberService.saveBatch(roomMembersToSave);
for (RoomMemberDto member : members) { for (RoomMemberDto member : members) {
// ws向接收方发送通知 // ws向接收方发送通知
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment