Commit 245d2ed5 by Future

多人音视频拉人逻辑

parent a121c23d
...@@ -79,8 +79,9 @@ public class MultiMeetServiceImpl implements MultiMeetService { ...@@ -79,8 +79,9 @@ public class MultiMeetServiceImpl implements MultiMeetService {
log.info("发起方必须在线" + currentClient.getFkAppid() + currentClient.getClientId()); log.info("发起方必须在线" + currentClient.getFkAppid() + currentClient.getClientId());
} }
List<RoomMemberDto> members = Lists.newArrayList(); List<RoomMemberDto> members = Lists.newArrayList();
ImMultiRtcRoom rtcRoom = imMultiRtcRoomService.getCachedMultiRtcRoom(currentClient.getFkAppid(), param.getRoomId()); List<ImMultiRtcRoomMember> beInvites = Lists.newArrayList();
List<ImMultiRtcRoomMember> roomMembersToSave = Lists.newArrayList(); List<ImMultiRtcRoomMember> roomMembersToSave = Lists.newArrayList();
ImMultiRtcRoom rtcRoom = imMultiRtcRoomService.getCachedMultiRtcRoom(currentClient.getFkAppid(), param.getRoomId());
if (rtcRoom == null) { if (rtcRoom == null) {
rtcRoom = new ImMultiRtcRoom(); rtcRoom = new ImMultiRtcRoom();
rtcRoom.setId(SnowflakeUtil.getId()); rtcRoom.setId(SnowflakeUtil.getId());
...@@ -142,14 +143,15 @@ public class MultiMeetServiceImpl implements MultiMeetService { ...@@ -142,14 +143,15 @@ public class MultiMeetServiceImpl implements MultiMeetService {
wsMultiMeetWrite.busy(multiMeetBusyResponse, currentClient.getId()); wsMultiMeetWrite.busy(multiMeetBusyResponse, currentClient.getId());
continue; continue;
} }
ImMultiRtcRoomMember rtcRoomMember = imMultiRtcRoomMemberService.getOne(new QueryWrapper<ImMultiRtcRoomMember>().lambda() ImMultiRtcRoomMember existedRoomMember = imMultiRtcRoomMemberService.getOne(new QueryWrapper<ImMultiRtcRoomMember>().lambda()
.eq(ImMultiRtcRoomMember::getClientId, toClientId) .eq(ImMultiRtcRoomMember::getClientId, toClientId)
.eq(ImMultiRtcRoomMember::getRoomId, param.getRoomId())); .eq(ImMultiRtcRoomMember::getRoomId, param.getRoomId()));
if (rtcRoomMember != null) { if (existedRoomMember != null) {
// 该房间已邀请过一次,再次发起邀请 // 该房间已邀请过一次,再次发起邀请
rtcRoomMember.setState(MultiRtcMemberStateEnum.CALLING.getCode()); existedRoomMember.setState(MultiRtcMemberStateEnum.CALLING.getCode());
rtcRoomMember.setCallTime(new Date()); existedRoomMember.setCallTime(new Date());
imMultiRtcRoomMemberService.updateById(rtcRoomMember); imMultiRtcRoomMemberService.updateById(existedRoomMember);
beInvites.add(existedRoomMember);
continue; continue;
} }
ImMultiRtcRoomMember roomMember = new ImMultiRtcRoomMember(); ImMultiRtcRoomMember roomMember = new ImMultiRtcRoomMember();
...@@ -163,6 +165,7 @@ public class MultiMeetServiceImpl implements MultiMeetService { ...@@ -163,6 +165,7 @@ public class MultiMeetServiceImpl implements MultiMeetService {
roomMember.setCreateTime(new Date()); roomMember.setCreateTime(new Date());
roomMember.setUpdateTime(new Date()); roomMember.setUpdateTime(new Date());
roomMembersToSave.add(roomMember); roomMembersToSave.add(roomMember);
beInvites.add(roomMember);
RoomMemberDto roomMemberDto = new RoomMemberDto(); RoomMemberDto roomMemberDto = new RoomMemberDto();
roomMemberDto.setFkClientId(toClient.getId()); roomMemberDto.setFkClientId(toClient.getId());
roomMemberDto.setClientId(toClient.getClientId()); roomMemberDto.setClientId(toClient.getClientId());
...@@ -170,7 +173,7 @@ public class MultiMeetServiceImpl implements MultiMeetService { ...@@ -170,7 +173,7 @@ public class MultiMeetServiceImpl implements MultiMeetService {
members.add(roomMemberDto); members.add(roomMemberDto);
} }
imMultiRtcRoomMemberService.saveBatch(roomMembersToSave); imMultiRtcRoomMemberService.saveBatch(roomMembersToSave);
for (RoomMemberDto member : members) { for (ImMultiRtcRoomMember member : beInvites) {
// ws向接收方发送通知 // ws向接收方发送通知
MultiMeetInviteResponse multiMeetInviteResponse = new MultiMeetInviteResponse(); MultiMeetInviteResponse multiMeetInviteResponse = new MultiMeetInviteResponse();
multiMeetInviteResponse.setConversationId(param.getConversationId()); multiMeetInviteResponse.setConversationId(param.getConversationId());
......
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