130 lines
7.1 KiB
PHP
130 lines
7.1 KiB
PHP
|
|
<?php
|
|||
|
|
/**
|
|||
|
|
* Проверка документов проекта 373977
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
error_reporting(E_ALL);
|
|||
|
|
ini_set('display_errors', 1);
|
|||
|
|
|
|||
|
|
require_once '/var/www/fastuser/data/www/crm.clientright.ru/vendor/autoload.php';
|
|||
|
|
$config = require '/var/www/fastuser/data/www/crm.clientright.ru/crm_extensions/file_storage/config.php';
|
|||
|
|
|
|||
|
|
$projectId = 373977;
|
|||
|
|
$s3Bucket = $config['s3']['bucket'];
|
|||
|
|
|
|||
|
|
// Документы проекта из БД
|
|||
|
|
$documents = [
|
|||
|
|
373981 => 'crm2/CRM_Active_Files/Documents/Project/Полулях_ЧУ_ДПО_ГОРОДСКАЯ_АКАДЕМИЯ_УРБАН_373977/8_Договор_на_оказание_услуг_373981.pdf',
|
|||
|
|
373983 => 'crm2/CRM_Active_Files/Documents/Project/Полулях_ЧУ_ДПО_ГОРОДСКАЯ_АКАДЕМИЯ_УРБАН_373977/9_Подтверждение_оплаты_по_договору_373983.pdf',
|
|||
|
|
373985 => 'crm2/CRM_Active_Files/Documents/Project/Полулях_ЧУ_ДПО_ГОРОДСКАЯ_АКАДЕМИЯ_УРБАН_373977/10_2_Скрин_личного_кабинета_Истца_и_программа_обуч_373985.pdf',
|
|||
|
|
373987 => 'crm2/CRM_Active_Files/Documents/Project/Полулях_ЧУ_ДПО_ГОРОДСКАЯ_АКАДЕМИЯ_УРБАН_373977/10_1_Скрин_личного_кабинета_Истца_и_программа_обуч_373987.pdf',
|
|||
|
|
373989 => 'crm2/CRM_Active_Files/Documents/Project/Полулях_ЧУ_ДПО_ГОРОДСКАЯ_АКАДЕМИЯ_УРБАН_373977/11_1_Подтверждение_проведения_претензионной_работы_373989.pdf',
|
|||
|
|
373991 => 'crm2/CRM_Active_Files/Documents/Project/Полулях_ЧУ_ДПО_ГОРОДСКАЯ_АКАДЕМИЯ_УРБАН_373977/7_заявление_потребителя_373991.pdf',
|
|||
|
|
374017 => 'crm2/CRM_Active_Files/Documents/Project/Полулях_ЧУ_ДПО_ГОРОДСКАЯ_АКАДЕМИЯ_УРБАН_373977/11_Доказательство_соблюдения_претензионного_порядк_374017.pdf',
|
|||
|
|
375402 => 'crm2/CRM_Active_Files/Documents/Project/Полулях_ЧУ_ДПО_ГОРОДСКАЯ_АКАДЕМИЯ_УРБАН_373977/11.2_Претензия_в_защиту_интересов_Полулях_Ольга_1_375402.pdf',
|
|||
|
|
375404 => 'crm2/CRM_Active_Files/Documents/Project/Полулях_ЧУ_ДПО_ГОРОДСКАЯ_АКАДЕМИЯ_УРБАН_373977/11.3_Доказательство_оплаты_направления_претензии_о_375404.pdf',
|
|||
|
|
375406 => 'crm2/CRM_Active_Files/Documents/Project/Полулях_ЧУ_ДПО_ГОРОДСКАЯ_АКАДЕМИЯ_УРБАН_373977/11.4_Доказательство_направления_претензии_ответчик_375406.pdf',
|
|||
|
|
376051 => 'crm2/CRM_Active_Files/Documents/Project/Полулях_ЧУ_ДПО_ГОРОДСКАЯ_АКАДЕМИЯ_УРБАН_373977/0_Исковое_заявление_по_делу_Полулях_7_стр_376051.pdf',
|
|||
|
|
376054 => 'crm2/CRM_Active_Files/Documents/Project/Полулях_ЧУ_ДПО_ГОРОДСКАЯ_АКАДЕМИЯ_УРБАН_373977/6_Расчет_исковых_требований_Полулях_1_стр_376054.pdf',
|
|||
|
|
376080 => 'crm2/CRM_Active_Files/Documents/Project/Полулях_ЧУ_ДПО_ГОРОДСКАЯ_АКАДЕМИЯ_УРБАН_373977/12.1_Доказательство_оплаты_направления_иска_ответч_376080.pdf',
|
|||
|
|
376082 => 'crm2/CRM_Active_Files/Documents/Project/Полулях_ЧУ_ДПО_ГОРОДСКАЯ_АКАДЕМИЯ_УРБАН_373977/12.2_Доказательство_направления_иска_ответчику_376082.pdf',
|
|||
|
|
396623 => 'crm2/CRM_Active_Files/Documents/396623/ПК_451a1058-ee34-0d48-b2f4-d6dfa522928a.pdf_WITH_ENVELOPE.pdf', // Неправильное место!
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
echo "=== ПРОВЕРКА ДОКУМЕНТОВ ПРОЕКТА {$projectId} ===\n";
|
|||
|
|
echo str_repeat("=", 80) . "\n\n";
|
|||
|
|
|
|||
|
|
try {
|
|||
|
|
$s3Client = new \Aws\S3\S3Client([
|
|||
|
|
'version' => 'latest',
|
|||
|
|
'region' => $config['s3']['region'],
|
|||
|
|
'endpoint' => $config['s3']['endpoint'],
|
|||
|
|
'use_path_style_endpoint' => true,
|
|||
|
|
'credentials' => [
|
|||
|
|
'key' => $config['s3']['key'],
|
|||
|
|
'secret' => $config['s3']['secret'],
|
|||
|
|
],
|
|||
|
|
'suppress_php_deprecation_warning' => true
|
|||
|
|
]);
|
|||
|
|
|
|||
|
|
$stats = [
|
|||
|
|
'total' => count($documents),
|
|||
|
|
'exists' => 0,
|
|||
|
|
'missing' => 0,
|
|||
|
|
'wrong_place' => 0,
|
|||
|
|
'missing_files' => [],
|
|||
|
|
'wrong_place_files' => [],
|
|||
|
|
];
|
|||
|
|
|
|||
|
|
$projectPrefix = 'crm2/CRM_Active_Files/Documents/Project/Полулях_ЧУ_ДПО_ГОРОДСКАЯ_АКАДЕМИЯ_УРБАН_373977/';
|
|||
|
|
|
|||
|
|
foreach ($documents as $docId => $s3Key) {
|
|||
|
|
$filename = basename($s3Key);
|
|||
|
|
$isInProjectFolder = strpos($s3Key, $projectPrefix) === 0;
|
|||
|
|
|
|||
|
|
echo "Документ ID: {$docId}\n";
|
|||
|
|
echo " Файл: {$filename}\n";
|
|||
|
|
echo " Путь: {$s3Key}\n";
|
|||
|
|
|
|||
|
|
if ($s3Client->doesObjectExist($s3Bucket, $s3Key)) {
|
|||
|
|
$object = $s3Client->headObject(['Bucket' => $s3Bucket, 'Key' => $s3Key]);
|
|||
|
|
$size = round($object['ContentLength'] / 1024, 2);
|
|||
|
|
|
|||
|
|
if (!$isInProjectFolder) {
|
|||
|
|
echo " ⚠️ Файл существует, но в неправильном месте (размер: {$size} KB)\n";
|
|||
|
|
$stats['wrong_place']++;
|
|||
|
|
$stats['wrong_place_files'][] = [
|
|||
|
|
'doc_id' => $docId,
|
|||
|
|
'current_path' => $s3Key,
|
|||
|
|
'should_be' => $projectPrefix . $filename,
|
|||
|
|
];
|
|||
|
|
} else {
|
|||
|
|
echo " ✅ Файл существует (размер: {$size} KB)\n";
|
|||
|
|
$stats['exists']++;
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
echo " ❌ Файл отсутствует\n";
|
|||
|
|
$stats['missing']++;
|
|||
|
|
$stats['missing_files'][] = [
|
|||
|
|
'doc_id' => $docId,
|
|||
|
|
'path' => $s3Key,
|
|||
|
|
];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
echo "\n";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Итоги
|
|||
|
|
echo str_repeat("=", 80) . "\n";
|
|||
|
|
echo "ИТОГИ:\n";
|
|||
|
|
echo "Всего документов: {$stats['total']}\n";
|
|||
|
|
echo "✅ На месте: {$stats['exists']}\n";
|
|||
|
|
echo "⚠️ В неправильном месте: {$stats['wrong_place']}\n";
|
|||
|
|
echo "❌ Отсутствуют: {$stats['missing']}\n\n";
|
|||
|
|
|
|||
|
|
if (!empty($stats['wrong_place_files'])) {
|
|||
|
|
echo "ФАЙЛЫ В НЕПРАВИЛЬНОМ МЕСТЕ:\n";
|
|||
|
|
foreach ($stats['wrong_place_files'] as $file) {
|
|||
|
|
echo " - Документ {$file['doc_id']}: {$file['current_path']}\n";
|
|||
|
|
echo " Должен быть: {$file['should_be']}\n";
|
|||
|
|
}
|
|||
|
|
echo "\n";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if (!empty($stats['missing_files'])) {
|
|||
|
|
echo "ОТСУТСТВУЮЩИЕ ФАЙЛЫ:\n";
|
|||
|
|
foreach ($stats['missing_files'] as $file) {
|
|||
|
|
echo " - Документ {$file['doc_id']}: {$file['path']}\n";
|
|||
|
|
}
|
|||
|
|
echo "\n";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
echo "=== ГОТОВО ===\n";
|
|||
|
|
|
|||
|
|
} catch (Exception $e) {
|
|||
|
|
echo "❌ Ошибка: " . $e->getMessage() . "\n";
|
|||
|
|
exit(1);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|