45 $queryBuilder = $this->dbProvider
46 ->getReplicaDatabase( self::VIRTUAL_DOMAIN )
47 ->newSelectQueryBuilder()
48 ->select( [
'tmgs_group',
'tmgs_user_id' ] )
49 ->from( self::TABLE_NAME )
50 ->caller( __METHOD__ );
53 $dbGroupIds = array_map( self::getGroupIdForDatabase( ... ), $groupIds );
54 $dbGroupIdMap = array_combine( $dbGroupIds, $groupIds );
55 $queryBuilder->where( [
'tmgs_group' => $dbGroupIds ] );
58 $dbGroupIds = array_map( self::getGroupIdForDatabase( ... ), $groupIds );
59 $dbGroupIdMap = array_combine( $dbGroupIds, $groupIds );
63 $queryBuilder->andWhere( [
'tmgs_user_id' => $userId ] );
67 foreach ( $queryBuilder->fetchResultSet() as $row ) {
69 $subscriptions[$dbGroupIdMap[$row->tmgs_group] ?? $row->tmgs_group][] = (int)$row->tmgs_user_id;
71 return $subscriptions;
79 $userIds = $this->dbProvider
80 ->getReplicaDatabase( self::VIRTUAL_DOMAIN )
81 ->newSelectQueryBuilder()
82 ->select(
'tmgs_user_id' )
83 ->from( self::TABLE_NAME )
84 ->where( [
'tmgs_group' => $groupIds ] )
85 ->having(
'COUNT(tmgs_group) = ' . count( $groupIds ) )
86 ->caller( __METHOD__ )
88 return array_map( intval( ... ), $userIds );