private Mono<Set<Long>> queryGroupIdsFromGroupIdsAndMemberIds(
            @Nullable Set<Long> groupIds,
            @NotEmpty Set<Long> memberIds) {
        Recyclable<List<Long>> recyclableList = ListRecycler.obtain();
        Mono<List<Long>> joinedGroupIdListMono =
                groupMemberService.queryUsersJoinedGroupIds(groupIds, memberIds, null, null)
                        .collect(Collectors.toCollection(recyclableList::getValue));
        return joinedGroupIdListMono.map(CollectionUtil::newSet)
                .doFinally(signalType -> recyclableList.recycle());
    }
@implNote We don't need to check if the group count with the specified type owned by the
          requester exceeds here because it is implemented in
          {@link GroupService#isAllowedToCreateGroup}
turms-service/src/main/java/im/turms/service/domain/group/service/GroupService.java