Files
aiform_dev/docs/N8N_WORKFLOW_6mxRJ2LLHmQXyaDz_CHANGES.md
AI Assistant 080e7ec105 feat: Получение cf_2624 из MySQL и блокировка полей при подтверждении данных
- Добавлен сервис CrmMySQLService для прямого подключения к MySQL CRM
- Обновлён метод get_draft() для получения cf_2624 напрямую из БД
- Реализована блокировка полей (readonly) при contact_data_confirmed = true
- Добавлен выбор банка для СБП выплат с динамической загрузкой из API
- Обновлена документация по работе с cf_2624 и MySQL
- Добавлен network_mode: host в docker-compose для доступа к MySQL
- Обновлены компоненты формы для поддержки блокировки полей
2025-12-04 12:22:23 +03:00

136 lines
5.5 KiB
Markdown
Raw Permalink 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.

# Конкретные изменения в workflow 6mxRJ2LLHmQXyaDz
## Что менять:
### 1. После ноды `user_get` → добавить PostgreSQL ноду (ПЕРВАЯ)
**Название ноды:** `PostgreSQL: Auto Confirm Contact Data`
**Параметры:**
- **Operation:** Execute Query
- **Query:**
```sql
SELECT clpr_auto_confirm_if_crm_has_data($1, $2::integer);
```
- **Parameters:**
- `$1` = `{{ $json.unified_id }}` ← используем данные из предыдущей ноды (user_get)
- `$2` = `{{ JSON.parse($node['CreateWebContacКлиентправ'].json.result).contact_id }}`
**Подключение:**
- `user_get``PostgreSQL: Auto Confirm Contact Data``Execute a SQL query2`
---
### 2. После ноды `PostgreSQL: Auto Confirm Contact Data` → добавить PostgreSQL ноду (ВТОРАЯ)
**Название ноды:** `PostgreSQL: Check Contact Data Status`
**Параметры:**
- **Operation:** Execute Query
- **Query:**
```sql
SELECT * FROM clpr_get_contact_data_status($1);
```
- **Parameters:**
- `$1` = `{{ $json.unified_id }}` ← unified_id передаётся дальше по цепочке
**Подключение:**
- `PostgreSQL: Auto Confirm Contact Data``PostgreSQL: Check Contact Data Status``Execute a SQL query2`
---
### 3. В ноде `Code in JavaScript` (та что перед `Respond to Webhook1`) → добавить флаг в ответ
**Найти эту строку:**
```javascript
// Unified ID из PostgreSQL (обязательно!)
unified_id: userData.unified_id, // из ноды user_get (PostgreSQL: Find or Create User)
```
**Добавить ПОСЛЕ неё:**
```javascript
// Флаг подтверждения данных контакта
contact_data_confirmed: $('PostgreSQL: Check Contact Data Status').first().json.is_confirmed || false,
contact_data_can_edit: $('PostgreSQL: Check Contact Data Status').first().json.can_edit !== false,
contact_data_confirmed_at: $('PostgreSQL: Check Contact Data Status').first().json.confirmed_at || null,
```
**Полный return должен быть:**
```javascript
return {
success: true,
result: {
session: $('Code in JavaScript3').first().json.session_id,
contact_id: sessionData.contact_id || claimResult.contact_id,
project_id: sessionData.project_id,
// Unified ID из PostgreSQL (обязательно!)
unified_id: userData.unified_id,
// Флаг подтверждения данных контакта
contact_data_confirmed: $('PostgreSQL: Check Contact Data Status').first().json.is_confirmed || false,
contact_data_can_edit: $('PostgreSQL: Check Contact Data Status').first().json.can_edit !== false,
contact_data_confirmed_at: $('PostgreSQL: Check Contact Data Status').first().json.confirmed_at || null,
// Данные заявки
ticket_id: claimResult.ticket_id,
ticket_number: claimResult.ticket_number,
title: claimResult.title,
category: claimResult.category,
status: claimResult.status,
// Метаданные
event_type: sessionData.event_type,
current_step: sessionData.current_step || 1,
updated_at: sessionData.updated_at || new Date().toISOString(),
// Дополнительно
is_new_contact: claimResult.is_new_contact || false
}
};
```
---
## Итого: 3 изменения
1. ✅ Добавить ноду `PostgreSQL: Auto Confirm Contact Data` после `CreateWebContacКлиентправ`
2. ✅ Добавить ноду `PostgreSQL: Check Contact Data Status` после `user_get`
3. ✅ Добавить 3 строки в `Code in JavaScript` перед `Respond to Webhook1`
---
## Порядок выполнения в workflow:
```
contact → Edit Fields → Get Challenge → ... → Login to CRM → form_id
CreateWebContacКлиентправ
[НОВАЯ] PostgreSQL: Auto Confirm Contact Data
Code in JavaScriptКлиентправ
user_get
[НОВАЯ] PostgreSQL: Check Contact Data Status
Execute a SQL query2
...
Code in JavaScript (← ДОБАВИТЬ ФЛАГИ)
Respond to Webhook1
```
---
## Проверка:
После изменений в ответе n8n должны быть поля:
- `contact_data_confirmed` (true/false)
- `contact_data_can_edit` (true/false)
- `contact_data_confirmed_at` (дата или null)