Proyectos de Subversion LeadersLinked - Services

Rev

Rev 276 | Rev 278 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 276 Rev 277
Línea 1214... Línea 1214...
1214
 
1214
 
1215
        return $this->executeFetchAllObject($select, $prototype);
1215
        return $this->executeFetchAllObject($select, $prototype);
Línea -... Línea 1216...
-
 
1216
    }
-
 
1217
    
-
 
1218
    
-
 
1219
    /**
-
 
1220
     *
-
 
1221
     * @param int $network_id
-
 
1222
     * @param string $search
-
 
1223
     * @param int $records_per_page
-
 
1224
     * @param int $page
-
 
1225
     * @param int[] $userBlockedIds
-
 
1226
     * 
-
 
1227
     * @return User[]
-
 
1228
     */
-
 
1229
    public function fetchAllSuggestPaginateByNetworkIdAndSearchAndNotBlocked($network_id, $search, $records_per_page, $page,  $userBlockedIds = [])
-
 
1230
    {
-
 
1231
        
-
 
1232
        $select = $this->sql->select();
-
 
1233
        $select->from(self::_TABLE);
-
 
1234
        $select->where->equalTo('network_id', $network_id);
-
 
1235
        $select->where->equalTo('status', User::STATUS_ACTIVE);
-
 
1236
        $select->where->equalTo('email_verified', User::EMAIL_VERIFIED_YES);
-
 
1237
        
-
 
1238
        if($userBlockedIds) {
-
 
1239
        $select->where->notIn('id', $userBlockedIds);
-
 
1240
        }
-
 
1241
        
-
 
1242
        if ($search) {
-
 
1243
            $select->where->nest()
-
 
1244
            ->like('first_name', '%' . $search . '%')
-
 
1245
            ->or->like('last_name', '%' . $search . '%')
-
 
1246
            ->or->like(new Expression("CONCAT(first_name,' ',last_name)"), '%' . $search . '%')
-
 
1247
            ->or->like(new Expression("CONCAT(last_name,' ',first_name)"), '%' . $search . '%')
-
 
1248
            ->or->like('email', '%' . $search . '%')
-
 
1249
            ->unnest();
-
 
1250
        }
-
 
1251
        
-
 
1252
        $select->order(['first_name', 'last_name']);
-
 
1253
        
-
 
1254
        // echo $select->getSqlString($this->adapter->platform); exit;
-
 
1255
        
-
 
1256
        $prototype = new User();
-
 
1257
        
-
 
1258
        $hydrator   = new ObjectPropertyHydrator();
-
 
1259
        $resultset  = new HydratingResultSet($hydrator, $prototype);
-
 
1260
        
-
 
1261
        $adapter = new DbSelect($select, $this->sql, $resultset);
-
 
1262
        $paginator = new Paginator($adapter);
-
 
1263
        $paginator->setItemCountPerPage($records_per_page);
-
 
1264
        $paginator->setCurrentPageNumber($page);
-
 
1265
        
Línea 1216... Línea 1266...
1216
    }
1266
        
1217
    
1267
        return $paginator;
1218
    
1268
    }