Files
crm.clientright.ru/aiassist/crmHandler.php

77 lines
3.1 KiB
PHP
Raw Normal View History

<?php
// aiassist/crmHandler.php
require_once 'database.php';
require_once 'logger.php';
function fetchDocumentData($pdo, $id) {
logMessage("Получение данных документа из CRM по ID: $id");
$sql = "
SELECT
n.title,
CASE
WHEN a.storedname IS NOT NULL THEN CONCAT(a.path, a.attachmentsid, '_', a.storedname)
ELSE CONCAT(a.path, a.attachmentsid, '_', a.name)
END AS filepath,
f.foldername AS folder_name,
f.folderid AS folder_id
FROM vtiger_senotesrel r
LEFT JOIN vtiger_notes n ON n.notesid = r.notesid
LEFT JOIN vtiger_crmentity e ON e.crmid = r.notesid
LEFT JOIN vtiger_notescf ncf ON ncf.notesid = r.notesid
LEFT JOIN vtiger_seattachmentsrel r2 ON r2.crmid = r.notesid
LEFT JOIN vtiger_attachments a ON a.attachmentsid = r2.attachmentsid
LEFT JOIN vtiger_attachmentsfolder f ON f.folderid = n.folderid
WHERE r.crmid = ? AND e.deleted = 0
AND (a.type = 'application/pdf' OR a.type = 'application/octet-stream')
";
try {
$stmt = $pdo->prepare($sql);
$stmt->execute([$id]);
$documents = $stmt->fetchAll(PDO::FETCH_ASSOC);
logMessage("Документы получены из CRM: " . json_encode($documents, JSON_UNESCAPED_UNICODE));
return $documents;
} catch (PDOException $e) {
logMessage("Ошибка при выполнении запроса к CRM: " . $e->getMessage());
return [];
}
}
if (!function_exists('sendAnalysisToCRM')) {
function sendAnalysisToCRM($caseId, $analysis) {
// Обеспечим наличие нужных ключей
/* if (!isset($analysis['content'])) {
$analysis['content'] = $analysis['анализ_gpt'] ?? 'Анализ не выполнен';
} */
if (!isset($analysis['moderationVerdict'])) {
$analysis['moderationVerdict'] = $analysis['вывод_gpt'] ?? 'Не определен';
}
if (!isset($analysis['status'])) {
$analysis['status'] = 'complete';
}
$final_output = [
"status" => $analysis['status'],
"content" => $analysis['content'],
"moderationVerdict" => $analysis['moderationVerdict']
];
$json_output = json_encode($final_output, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);
if ($json_output === false) {
$error = json_last_error_msg();
logMessage("ERROR: Ошибка кодирования JSON: $error");
die(json_encode(["status" => "error", "message" => "Ошибка формирования ответа"]));
}
logMessage("DEBUG: Итоговый JSON для CRM: " . $json_output);
// Устанавливаем заголовок для JSON
header('Content-Type: application/json; charset=utf-8');
echo $json_output;
logMessage("Обработка завершена. Ответ успешно отправлен в CRM");
exit;
}
}
?>