- Добавлен сервис CrmMySQLService для прямого подключения к MySQL CRM - Обновлён метод get_draft() для получения cf_2624 напрямую из БД - Реализована блокировка полей (readonly) при contact_data_confirmed = true - Добавлен выбор банка для СБП выплат с динамической загрузкой из API - Обновлена документация по работе с cf_2624 и MySQL - Добавлен network_mode: host в docker-compose для доступа к MySQL - Обновлены компоненты формы для поддержки блокировки полей
57 lines
1.9 KiB
SQL
57 lines
1.9 KiB
SQL
-- SQL скрипт для n8n: Отметка формы как подтвержденной после получения данных из Redis канала
|
|
-- Используется после обработки события из канала clientright:webform:approve
|
|
--
|
|
-- Параметры:
|
|
-- $1 = claim_id (UUID или текст)
|
|
-- $2 = approved_form (JSONB - полные данные формы после апрува)
|
|
-- $3 = sms_code (текст - код подтверждения)
|
|
-- $4 = phone (текст - телефон)
|
|
--
|
|
-- Обновляет:
|
|
-- - status_code = 'approved' (отмечает форму как подтвержденную)
|
|
-- - is_confirmed = true (дополнительный флаг подтверждения)
|
|
-- - payload.approved_form = полные данные формы
|
|
-- - payload.sms_verified = true
|
|
-- - payload.sms_code = код подтверждения
|
|
-- - payload.approved_at = время подтверждения
|
|
-- - updated_at = now() (время обновления)
|
|
--
|
|
-- После этого запись больше не будет показываться в списке черновиков
|
|
|
|
WITH claim_lookup AS (
|
|
SELECT
|
|
c.id,
|
|
c.payload,
|
|
c.status_code,
|
|
c.is_confirmed
|
|
FROM clpr_claims c
|
|
WHERE c.id::text = $1::text
|
|
OR c.payload->>'claim_id' = $1::text
|
|
ORDER BY
|
|
CASE WHEN c.id::text = $1::text THEN 1 ELSE 2 END,
|
|
c.updated_at DESC
|
|
LIMIT 1
|
|
)
|
|
UPDATE clpr_claims c
|
|
SET
|
|
status_code = 'approved',
|
|
is_confirmed = true,
|
|
payload = c.payload
|
|
|| jsonb_build_object(
|
|
'approved_form', $2::jsonb,
|
|
'sms_verified', true,
|
|
'sms_code', $3::text,
|
|
'approved_phone', $4::text,
|
|
'approved_at', now()::text
|
|
),
|
|
updated_at = now()
|
|
FROM claim_lookup cl
|
|
WHERE c.id = cl.id
|
|
RETURNING
|
|
c.id,
|
|
c.payload->>'claim_id' AS claim_id,
|
|
c.status_code,
|
|
c.is_confirmed,
|
|
c.updated_at,
|
|
c.payload->'approved_form' IS NOT NULL AS has_approved_form;
|