private function saveAuthorsToDB($authorResults) { $authorDao = new AuthorDao(); $authorDetailsDao = new AuthorDetailsDao(); foreach ($authorResults as $authorResult) { $authorDetailsDao->insert($authorResult->details); $authorResult->detailsId = $authorResult->details->id; $authorDao->insert($authorResult); } }
public function retrieveAffiliationsForAuthors() { // performance check print "INIT retrieveAffiliationsForAuthors"; $affiliationDao = new AffiliationDao(); $authorDetailsDao = new AuthorDetailsDao(); // Papers without journal $authorDetails = $authorDetailsDao->findAuthorDetailsWithoutAffiliation(); $recordIds = array(); $count = 0; $flush = false; $batchCount = 0; foreach ($authorDetails as $authorDetail) { $AffiliationCurrentId = $affiliationDao->findIdByMsaId($authorDetail->msaAffiliationId); $flush = false; if (isset($AffiliationCurrentId) == false && $authorDetail->msaAffiliationId > 0) { $recordIds[$count] = $authorDetail->msaAffiliationId; if ($count >= QueryMsa::MAX_RECORDS_PER_QUERY) { // performance check print "PROCESS BATCH(" . $batchCount . ") retrieveAffiliationsForAuthors"; $recordIdsUnique = array_unique($recordIds, SORT_NUMERIC); $this->searchAffiliationsByIds($batchCount, $recordIdsUnique); $count = 0; unset($recordIds); $recordIds = array(); $flush = true; $batchCount++; } else { $count++; } } } if ($flush == false && count($recordIds) > 0) { // performance check print "PROCESS BATCH(" . $batchCount . ") LAST retrieveAffiliationsForAuthors"; $recordIdsUnique = array_unique($recordIds, SORT_NUMERIC); $this->searchAffiliationsByIds($batchCount, $recordIdsUnique); } // performance check print "END retrieveAffiliationsForAuthors"; }