[ Mini Kiebo ]
Server: Windows NT DESKTOP-5B8S0D4 6.2 build 9200 (Windows 8 Professional Edition) i586
Path:
D:
/
Backup
/
05122024
/
htdocs
/
jurnal-kesmas
/
baru
/
jobs
/
statistics
/
[
Home
]
File: ProcessUsageStatsLogFile.php
<?php /** * @file jobs/statistics/ProcessUsageStatsLogFile.php * * Copyright (c) 2024 Simon Fraser University * Copyright (c) 2024 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * @class ProcessUsageStatsLogFile * * @ingroup jobs * * @brief Compile context metrics. */ namespace APP\jobs\statistics; use APP\core\Application; use APP\statistics\TemporaryItemInvestigationsDAO; use APP\statistics\TemporaryItemRequestsDAO; use APP\statistics\TemporaryTotalsDAO; use Exception; use PKP\db\DAORegistry; use PKP\jobs\statistics\PKPProcessUsageStatsLogFile; use PKP\statistics\TemporaryInstitutionsDAO; class ProcessUsageStatsLogFile extends PKPProcessUsageStatsLogFile { protected function deleteByLoadId(): void { $temporaryInstitutionsDao = DAORegistry::getDAO('TemporaryInstitutionsDAO'); /** @var TemporaryInstitutionsDAO $temporaryInstitutionsDao */ $temporaryTotalsDao = DAORegistry::getDAO('TemporaryTotalsDAO'); /** @var TemporaryTotalsDAO $temporaryTotalsDao */ $temporaryItemInvestigationsDao = DAORegistry::getDAO('TemporaryItemInvestigationsDAO'); /** @var TemporaryItemInvestigationsDAO $temporaryItemInvestigationsDao */ $temporaryItemRequestsDao = DAORegistry::getDAO('TemporaryItemRequestsDAO'); /** @var TemporaryItemRequestsDAO $temporaryItemRequestsDao */ $temporaryInstitutionsDao->deleteByLoadId($this->loadId); $temporaryTotalsDao->deleteByLoadId($this->loadId); $temporaryItemInvestigationsDao->deleteByLoadId($this->loadId); $temporaryItemRequestsDao->deleteByLoadId($this->loadId); } protected function validateLogEntry(object $entry): void { parent::validateLogEntry($entry); if (!empty($entry->issueId) && !is_int($entry->issueId)) { throw new Exception(__('admin.job.processLogFile.invalidLogEntry.issueId')); } if (!empty($entry->issueGalleyId) && !is_int($entry->issueGalleyId)) { throw new Exception(__('admin.job.processLogFile.invalidLogEntry.issueGalleyId')); } } protected function getValidAssocTypes(): array { return [ Application::ASSOC_TYPE_SUBMISSION_FILE, Application::ASSOC_TYPE_SUBMISSION_FILE_COUNTER_OTHER, Application::ASSOC_TYPE_SUBMISSION, Application::ASSOC_TYPE_ISSUE_GALLEY, Application::ASSOC_TYPE_ISSUE, Application::ASSOC_TYPE_JOURNAL, ]; } protected function insertTemporaryUsageStatsData(object $entry, int $lineNumber): void { $temporaryInstitutionsDao = DAORegistry::getDAO('TemporaryInstitutionsDAO'); /** @var TemporaryInstitutionsDAO $temporaryInstitutionsDao */ $temporaryTotalsDao = DAORegistry::getDAO('TemporaryTotalsDAO'); /** @var TemporaryTotalsDAO $temporaryTotalsDao */ $temporaryItemInvestigationsDao = DAORegistry::getDAO('TemporaryItemInvestigationsDAO'); /** @var TemporaryItemInvestigationsDAO $temporaryItemInvestigationsDao */ $temporaryItemRequestsDao = DAORegistry::getDAO('TemporaryItemRequestsDAO'); /** @var TemporaryItemRequestsDAO $temporaryItemRequestsDao */ try { $temporaryTotalsDao->insert($entry, $lineNumber, $this->loadId); $temporaryInstitutionsDao->insert($entry->institutionIds, $lineNumber, $this->loadId); if (!empty($entry->submissionId)) { $temporaryItemInvestigationsDao->insert($entry, $lineNumber, $this->loadId); if ($entry->assocType == Application::ASSOC_TYPE_SUBMISSION_FILE) { $temporaryItemRequestsDao->insert($entry, $lineNumber, $this->loadId); } } } catch (\Illuminate\Database\QueryException $e) { $message = __( 'admin.job.processLogFile.insertError', ['file' => $this->loadId, 'lineNumber' => $lineNumber, 'msg' => $e->getMessage()] ); error_log($message); } } }