REQ-3345: fix bugs

This commit is contained in:
yanglin 2025-02-10 09:17:06 +08:00
parent 13f2f3de17
commit c177d51b2a
4 changed files with 11 additions and 11 deletions

View File

@ -27,13 +27,13 @@ public class GroupMemberDao extends ServiceImpl<GroupMapperMapper, GroupMember>
.remove(); .remove();
} }
public Set<PersonAccountAttribute> getGroupPersons(Long tid) { public Set<PersonAccountAttribute> getAsPersons(Long tid) {
return getMembersByTid(tid).stream() return getByTid(tid).stream()
.map(GroupMember::asPerson) .map(GroupMember::asPerson)
.collect(toSet()); .collect(toSet());
} }
public List<GroupMember> getMembersByTid(Long tid) { public List<GroupMember> getByTid(Long tid) {
return lambdaQuery() return lambdaQuery()
.eq(GroupMember::getTid, tid) .eq(GroupMember::getTid, tid)
.list(); .list();
@ -55,7 +55,7 @@ public class GroupMemberDao extends ServiceImpl<GroupMapperMapper, GroupMember>
.remove(); .remove();
} }
public List<GroupMember> getMembersByPersons( public List<GroupMember> getByPersons(
Long tid, Collection<PersonAccountAttribute> persons) { Long tid, Collection<PersonAccountAttribute> persons) {
if (CollectionUtils.isEmpty(persons)) if (CollectionUtils.isEmpty(persons))
return Collections.emptyList(); return Collections.emptyList();

View File

@ -90,7 +90,7 @@ public class GroupManager {
// 同步完成员后再发消息, 因为接收方可能会查询群成员 // 同步完成员后再发消息, 因为接收方可能会查询群成员
groupBroadcaster.fireGroupChanged(group, MqEventType.GROUP_CREATED); groupBroadcaster.fireGroupChanged(group, MqEventType.GROUP_CREATED);
groupBroadcaster.fireMembersChanged(group, groupBroadcaster.fireMembersChanged(group,
groupMemberDao.getMembersByTid(nimResponse.getTid()), groupMemberDao.getByTid(nimResponse.getTid()),
MqEventType.GROUP_ADD_MEMBERS); MqEventType.GROUP_ADD_MEMBERS);
GroupCreateResponse response = new GroupCreateResponse(); GroupCreateResponse response = new GroupCreateResponse();
response.setTid(nimResponse.getTid()); response.setTid(nimResponse.getTid());
@ -124,7 +124,7 @@ public class GroupManager {
// sync members 1 // sync members 1
groupMemberSyncer.syncMembers(group); groupMemberSyncer.syncMembers(group);
// prepare add members // prepare add members
Set<PersonAccountAttribute> prePersons = groupMemberDao.getGroupPersons(group.getTid()); Set<PersonAccountAttribute> prePersons = groupMemberDao.getAsPersons(group.getTid());
Set<PersonAccountAttribute> addPersons = request.getMembers().stream() Set<PersonAccountAttribute> addPersons = request.getMembers().stream()
.filter(member -> !prePersons.contains(member)) .filter(member -> !prePersons.contains(member))
.collect(toSet()); .collect(toSet());
@ -148,7 +148,7 @@ public class GroupManager {
// sync members 2 // sync members 2
groupMemberSyncer.syncMembers(group); groupMemberSyncer.syncMembers(group);
groupBroadcaster.fireMembersChanged(group, groupBroadcaster.fireMembersChanged(group,
groupMemberDao.getMembersByPersons(group.getTid(), addPersons), groupMemberDao.getByPersons(group.getTid(), addPersons),
MqEventType.GROUP_ADD_MEMBERS); MqEventType.GROUP_ADD_MEMBERS);
GroupAddMembersResponse response = new GroupAddMembersResponse(); GroupAddMembersResponse response = new GroupAddMembersResponse();
response.setAccountsNotFound(getAccountNotFoundPersons( response.setAccountsNotFound(getAccountNotFoundPersons(
@ -170,7 +170,7 @@ public class GroupManager {
// sync members 1 // sync members 1
groupMemberSyncer.syncMembers(group); groupMemberSyncer.syncMembers(group);
Set<PersonAccountAttribute> groupPersons = groupMemberDao Set<PersonAccountAttribute> groupPersons = groupMemberDao
.getGroupPersons(group.getTid()); .getAsPersons(group.getTid());
Set<PersonAccountAttribute> removePersons = request.getMembers().stream() Set<PersonAccountAttribute> removePersons = request.getMembers().stream()
.filter(groupPersons::contains) .filter(groupPersons::contains)
.collect(toSet()); .collect(toSet());
@ -190,7 +190,7 @@ public class GroupManager {
BizAssertions.assertTrue(nimResponse.isSuccess(), "移除群成员失败: {}", nimResponse.getDesc()); BizAssertions.assertTrue(nimResponse.isSuccess(), "移除群成员失败: {}", nimResponse.getDesc());
// 同步前进行查询, 不然查询不到了 // 同步前进行查询, 不然查询不到了
List<GroupMember> removeMembers = groupMemberDao List<GroupMember> removeMembers = groupMemberDao
.getMembersByPersons(group.getTid(), removePersons); .getByPersons(group.getTid(), removePersons);
// sync members 2 // sync members 2
groupMemberSyncer.syncMembers(group); groupMemberSyncer.syncMembers(group);
groupBroadcaster.fireMembersChanged(group, groupBroadcaster.fireMembersChanged(group,

View File

@ -64,7 +64,7 @@ public class GroupController implements GroupApi {
@Override @Override
public ApiResult<GroupGetMembersResponse> getMembers(GroupGetMembersRequest request) { public ApiResult<GroupGetMembersResponse> getMembers(GroupGetMembersRequest request) {
List<GroupMember> members = groupMemberDao.getMembersByTid(request.getTid()); List<GroupMember> members = groupMemberDao.getByTid(request.getTid());
GroupGetMembersResponse response = new GroupGetMembersResponse(); GroupGetMembersResponse response = new GroupGetMembersResponse();
response.setMembers(BeanMapper.copyList(members, GroupMemberInfo.class)); response.setMembers(BeanMapper.copyList(members, GroupMemberInfo.class));
return ApiResult.ok(response); return ApiResult.ok(response);

View File

@ -50,7 +50,7 @@ public class GroupMemberSyncer {
if (groupInfo == null) return; if (groupInfo == null) return;
transactionTemplate.executeWithoutResult(unused -> { transactionTemplate.executeWithoutResult(unused -> {
List<GroupMember> newMembers = parseGroupMembers(group, groupInfo); List<GroupMember> newMembers = parseGroupMembers(group, groupInfo);
List<GroupMember> oldMembers = groupMemberDao.getMembersByTid(group.getTid()); List<GroupMember> oldMembers = groupMemberDao.getByTid(group.getTid());
Set<PersonAccountAttribute> newPersons = newMembers.stream().map(GroupMember::asPerson).collect(toSet()); Set<PersonAccountAttribute> newPersons = newMembers.stream().map(GroupMember::asPerson).collect(toSet());
Set<PersonAccountAttribute> oldPersons = oldMembers.stream().map(GroupMember::asPerson).collect(toSet()); Set<PersonAccountAttribute> oldPersons = oldMembers.stream().map(GroupMember::asPerson).collect(toSet());