Files
crm.clientright.ru/ticket_form/docs/CODE_CREATE_WEB_CONTACT_FINAL.js
Fedor e114231541 feat: Получение cf_2624 из MySQL при загрузке черновика
- Добавлен сервис CrmMySQLService для подключения к MySQL БД vtiger CRM
- Обновлён get_draft() для прямого SQL запроса к MySQL вместо webservice API
- Получение cf_2624 и всех данных контакта из MySQL
- Обновлена документация и SQL файлы для n8n
- Добавлено логирование для отладки

Преимущества:
- Проще: один SQL запрос вместо цепочки HTTP запросов
- Быстрее: прямой запрос к БД
- Надёжнее: не зависит от webservice API
- Актуальнее: всегда свежие данные из БД
2025-12-03 16:04:25 +03:00

53 lines
2.2 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// Парсим результат CreateWebContact
const rawResult = $node["CreateWebContact"].json.result;
const contactData = JSON.parse(rawResult); // {"contact_id": "396625", "is_new": false, "cf_2624": "1"}
// ✅ Извлекаем cf_2624 (Данные подтверждены)
// "1" = данные подтверждены, "0" = не подтверждены
const cf_2624 = contactData.cf_2624 || "0";
const contact_data_confirmed = cf_2624 === "1";
const phone = $('Edit Fields').first().json.phone;
// Получаем session_id
const session_id = $('Edit Fields').first().json.session_id;
// Получаем unified_id из ноды user_get
const unified_id = $('user_get').first().json.unified_id || null;
// Формируем session для Redis (БЕЗ claim_id, с unified_id)
const sessionData = {
// claim_id убран - используем только session_id на этих этапах
unified_id: unified_id, // ← unified_id из PostgreSQL (получаем от user_get)
contact_id: contactData.contact_id, // ← распарсенный ID из CreateWebContact
phone: phone,
is_new_contact: contactData.is_new, // ← флаг нового контакта
cf_2624: cf_2624, // ✅ Сохраняем cf_2624 в сессию
contact_data_confirmed: contact_data_confirmed, // ✅ Сохраняем флаг подтверждения
status: "draft",
current_step: 1,
created_at: new Date().toISOString(),
updated_at: new Date().toISOString(),
documents: {},
email: null,
bank_name: null
};
return {
session: session_id,
session_id: session_id, // Добавляем для совместимости
unified_id: unified_id, // ✅ Добавляем unified_id в return
contact_id: contactData.contact_id,
is_new_contact: contactData.is_new,
phone: phone,
// ✅ Флаги подтверждения данных контакта (из cf_2624)
cf_2624: cf_2624,
contact_data_confirmed: contact_data_confirmed,
contact_data_can_edit: !contact_data_confirmed,
redis_key: `session:${session_id}`, // ✅ Используем session_id для ключа Redis
redis_value: JSON.stringify(sessionData),
ttl: 604800
};