143 lines
4.1 KiB
PHP
143 lines
4.1 KiB
PHP
<?php
|
||
/**
|
||
* Analyze Remaining Internal Files - анализирует оставшиеся 316 Internal файлов
|
||
*/
|
||
|
||
ini_set('memory_limit', '512M');
|
||
set_time_limit(0);
|
||
date_default_timezone_set('Europe/Moscow');
|
||
|
||
$ROOT = '/var/www/fastuser/data/www/crm.clientright.ru/';
|
||
require_once $ROOT . 'config.inc.php';
|
||
|
||
// Database connection
|
||
$mysqli = new mysqli($dbconfig['db_server'], $dbconfig['db_username'], $dbconfig['db_password'], $dbconfig['db_name']);
|
||
if ($mysqli->connect_error) {
|
||
die("Connection failed: " . $mysqli->connect_error);
|
||
}
|
||
$mysqli->set_charset("utf8");
|
||
|
||
echo "=== Analysis of Remaining 316 Internal Files ===\n\n";
|
||
|
||
// Get all remaining internal files
|
||
$query = "SELECT notesid, filename, filesize, filetype, s3_key
|
||
FROM vtiger_notes
|
||
WHERE filelocationtype = 'I'
|
||
ORDER BY notesid DESC";
|
||
|
||
$result = $mysqli->query($query);
|
||
if (!$result) {
|
||
die("Query failed: " . $mysqli->error);
|
||
}
|
||
|
||
$categories = [
|
||
'empty_filename' => [],
|
||
'duplicate_applications' => [],
|
||
'file_15_series' => [],
|
||
'evidence_files' => [],
|
||
'recent_files' => [], // ID > 390000
|
||
'old_files' => [], // ID < 100000
|
||
'other' => []
|
||
];
|
||
|
||
$stats = [
|
||
'total' => 0,
|
||
'with_s3_key' => 0,
|
||
'without_s3_key' => 0,
|
||
'zero_size' => 0,
|
||
'has_size' => 0
|
||
];
|
||
|
||
while ($row = $result->fetch_assoc()) {
|
||
$stats['total']++;
|
||
$notesid = (int)$row['notesid'];
|
||
$filename = trim($row['filename']);
|
||
$filesize = (int)$row['filesize'];
|
||
$s3_key = $row['s3_key'];
|
||
|
||
// Stats
|
||
if (!empty($s3_key)) {
|
||
$stats['with_s3_key']++;
|
||
} else {
|
||
$stats['without_s3_key']++;
|
||
}
|
||
|
||
if ($filesize == 0) {
|
||
$stats['zero_size']++;
|
||
} else {
|
||
$stats['has_size']++;
|
||
}
|
||
|
||
// Categorize
|
||
if (empty($filename)) {
|
||
$categories['empty_filename'][] = $row;
|
||
} elseif (strpos($filename, '7 заявление потребителя') !== false) {
|
||
$categories['duplicate_applications'][] = $row;
|
||
} elseif (strpos($filename, 'file_15_') !== false) {
|
||
$categories['file_15_series'][] = $row;
|
||
} elseif (strpos($filename, 'доказательство_') !== false) {
|
||
$categories['evidence_files'][] = $row;
|
||
} elseif ($notesid > 390000) {
|
||
$categories['recent_files'][] = $row;
|
||
} elseif ($notesid < 100000) {
|
||
$categories['old_files'][] = $row;
|
||
} else {
|
||
$categories['other'][] = $row;
|
||
}
|
||
}
|
||
|
||
$mysqli->close();
|
||
|
||
// Print analysis
|
||
echo "STATISTICS:\n";
|
||
echo "Total Internal files: {$stats['total']}\n";
|
||
echo "With S3 key: {$stats['with_s3_key']}\n";
|
||
echo "Without S3 key: {$stats['without_s3_key']}\n";
|
||
echo "Zero size: {$stats['zero_size']}\n";
|
||
echo "Has size: {$stats['has_size']}\n\n";
|
||
|
||
echo "CATEGORIES:\n";
|
||
foreach ($categories as $category => $files) {
|
||
$count = count($files);
|
||
echo "$category: $count files\n";
|
||
|
||
if ($count > 0 && $count <= 10) {
|
||
// Show all if 10 or less
|
||
foreach ($files as $file) {
|
||
echo " - ID {$file['notesid']}: {$file['filename']} ({$file['filesize']} bytes)\n";
|
||
}
|
||
} elseif ($count > 10) {
|
||
// Show first 5 and last 5
|
||
echo " First 5:\n";
|
||
for ($i = 0; $i < 5; $i++) {
|
||
$file = $files[$i];
|
||
echo " - ID {$file['notesid']}: {$file['filename']} ({$file['filesize']} bytes)\n";
|
||
}
|
||
echo " Last 5:\n";
|
||
for ($i = $count - 5; $i < $count; $i++) {
|
||
$file = $files[$i];
|
||
echo " - ID {$file['notesid']}: {$file['filename']} ({$file['filesize']} bytes)\n";
|
||
}
|
||
}
|
||
echo "\n";
|
||
}
|
||
|
||
// Save detailed report
|
||
$report = [
|
||
'timestamp' => date('Y-m-d H:i:s'),
|
||
'statistics' => $stats,
|
||
'categories' => []
|
||
];
|
||
|
||
foreach ($categories as $category => $files) {
|
||
$report['categories'][$category] = [
|
||
'count' => count($files),
|
||
'files' => $files
|
||
];
|
||
}
|
||
|
||
file_put_contents($ROOT . 'crm_extensions/file_storage/remaining_internal_analysis.json',
|
||
json_encode($report, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));
|
||
|
||
echo "Detailed report saved to: remaining_internal_analysis.json\n";
|