Commit 829167de by 罗长华

Merge remote-tracking branch 'origin/feature-cluster' into feature-cluster

parents 88ecd616 051b3b6a
...@@ -86,10 +86,27 @@ public class FriendService extends BaseServiceImpl<UserMapper, User> { ...@@ -86,10 +86,27 @@ public class FriendService extends BaseServiceImpl<UserMapper, User> {
if (pageFriends == null || CollectionUtils.isEmpty(pageFriends.getRecords())) { if (pageFriends == null || CollectionUtils.isEmpty(pageFriends.getRecords())) {
return friendDtoList; return friendDtoList;
} }
List<String> friendClientIds = pageFriends.getRecords().stream().map(ImFriendBaseDto::getFriendClientId).collect(Collectors.toList());
List<User> userList = userService.list(
new QueryWrapper<User>().lambda()
.in(User::getId, friendClientIds)
);
if (CollectionUtils.isEmpty(userList)) {
return friendDtoList;
}
Map<String, User> userMap = Maps.newHashMap();
for (User user : userList) {
userMap.put(user.getId().toString(), user);
}
for (ImFriendBaseDto record : pageFriends.getRecords()) { for (ImFriendBaseDto record : pageFriends.getRecords()) {
FriendDto friendDto = new FriendDto(); FriendDto friendDto = new FriendDto();
BeanUtils.copyProperties(record, friendDto); BeanUtils.copyProperties(record, friendDto);
User user = userMap.get(record.getFriendClientId());
if (user != null) {
friendDto.setIdNumber(user.getIdNumber());
friendDto.setHeadPortrait(user.getHeadPortrait());
friendDto.setNickname(user.getNickname());
}
friendDtoList.add(friendDto); friendDtoList.add(friendDto);
} }
return friendDtoList; return friendDtoList;
......
...@@ -164,14 +164,14 @@ public class NettyApiRequest { ...@@ -164,14 +164,14 @@ public class NettyApiRequest {
appUserChannelsService.online(client.getId(), jwtToken.getPlatform(), (NioSocketChannel) ctx.channel()); appUserChannelsService.online(client.getId(), jwtToken.getPlatform(), (NioSocketChannel) ctx.channel());
// 发布客户端在线状态变化事件 // 发布客户端在线状态变化事件
Long appId = app.getId(); // Long appId = app.getId();
String clientId = client.getClientId(); // String clientId = client.getClientId();
Integer platform = jwtToken.getPlatform(); // Integer platform = jwtToken.getPlatform();
long time = System.currentTimeMillis(); // long time = System.currentTimeMillis();
String clientIp = ctx.channel().remoteAddress().toString(); // String clientIp = ctx.channel().remoteAddress().toString();
ClientOnlineStatusChangeEvent clientOnlineStatusChangeEvent = new ClientOnlineStatusChangeEvent(appId, // ClientOnlineStatusChangeEvent clientOnlineStatusChangeEvent = new ClientOnlineStatusChangeEvent(appId,
clientId, 1, platform, time, clientIp); // clientId, 1, platform, time, clientIp);
eventPublisher.publishEvent(clientOnlineStatusChangeEvent); // eventPublisher.publishEvent(clientOnlineStatusChangeEvent);
//移除当前api处理handler, 不再参与长连接处理 //移除当前api处理handler, 不再参与长连接处理
ctx.pipeline().remove("SingleHttpRequestHandler"); ctx.pipeline().remove("SingleHttpRequestHandler");
......
...@@ -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向接收方发送通知
......
...@@ -205,7 +205,7 @@ public class RtcServiceImpl extends UserStateListener implements RtcService { ...@@ -205,7 +205,7 @@ public class RtcServiceImpl extends UserStateListener implements RtcService {
public Boolean sdpForward(SdpForwardParam sdpForwardParam) { public Boolean sdpForward(SdpForwardParam sdpForwardParam) {
ImClient client = imClientService.getCurrentClient(); ImClient client = imClientService.getCurrentClient();
Long rtcChannelId = SnowflakeUtil.getId(); Long rtcChannelId = sdpForwardParam.getChannelId();
// 根据appKey查询appid // 根据appKey查询appid
ImApplication imApplication = imApplicationService.getCacheById(client.getFkAppid()); ImApplication imApplication = imApplicationService.getCacheById(client.getFkAppid());
...@@ -246,7 +246,7 @@ public class RtcServiceImpl extends UserStateListener implements RtcService { ...@@ -246,7 +246,7 @@ public class RtcServiceImpl extends UserStateListener implements RtcService {
public Boolean candidateForward(CandidateForwardParam candidateForwardParam) { public Boolean candidateForward(CandidateForwardParam candidateForwardParam) {
ImClient client = imClientService.getCurrentClient(); ImClient client = imClientService.getCurrentClient();
Long rtcChannelId = SnowflakeUtil.getId(); Long rtcChannelId = candidateForwardParam.getChannelId();
// 根据appKey查询appid // 根据appKey查询appid
ImApplication imApplication = imApplicationService.getCacheById(client.getFkAppid()); ImApplication imApplication = imApplicationService.getCacheById(client.getFkAppid());
......
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