public Mono<Void> authAndTransferGroupOwnership(
            @NotNull Long requesterId,
            @NotNull Long groupId,
            @NotNull Long successorId,
            boolean quitAfterTransfer,
            @Nullable ClientSession session) {
        try {
            Validator.notNull(successorId, "successorId");
        } catch (ResponseException e) {
            return Mono.error(e);
        }
        if (successorId.equals(requesterId)) {
            return Mono.empty();
        }
        return groupMemberService.isOwner(requesterId, groupId, false)
                .flatMap(isOwner -> isOwner
                        ? checkAndTransferGroupOwnership(requesterId,
                                groupId,
                                successorId,
                                quitAfterTransfer,
                                session)
                        : Mono.error(ResponseException
                                .get(ResponseStatusCode.NOT_GROUP_OWNER_TO_TRANSFER_GROUP)));
    }
TODO: remove and keep {@link GroupService#queryGroupTypeIfActiveAndNotDeleted(Long, boolean)}
only.
turms-service/src/main/java/im/turms/service/domain/group/service/GroupService.java