fix: улучшен поиск заявлений по телефону - добавлен fallback на прямой поиск по payload
- Теперь поиск работает двумя способами: 1. Через unified_id (если есть запись в clpr_user_accounts) 2. Напрямую по телефону в payload (если unified_id не установлен) Исправляет проблему, когда заявления не находятся для контакта 71234543212
This commit is contained in:
@@ -210,9 +210,10 @@ async def list_drafts(
|
|||||||
params = [unified_id]
|
params = [unified_id]
|
||||||
logger.info(f"🔍 Searching by unified_id: {unified_id}")
|
logger.info(f"🔍 Searching by unified_id: {unified_id}")
|
||||||
elif phone:
|
elif phone:
|
||||||
# Fallback: ищем через clpr_user_accounts и clpr_users
|
# Fallback: ищем через clpr_user_accounts и clpr_users, ИЛИ напрямую по телефону в payload
|
||||||
|
# Это нужно, если unified_id не был установлен при создании заявления
|
||||||
query = """
|
query = """
|
||||||
SELECT
|
SELECT DISTINCT
|
||||||
c.id,
|
c.id,
|
||||||
c.payload->>'claim_id' as claim_id,
|
c.payload->>'claim_id' as claim_id,
|
||||||
c.session_token,
|
c.session_token,
|
||||||
@@ -222,14 +223,20 @@ async def list_drafts(
|
|||||||
c.created_at,
|
c.created_at,
|
||||||
c.updated_at
|
c.updated_at
|
||||||
FROM clpr_claims c
|
FROM clpr_claims c
|
||||||
WHERE c.unified_id = (
|
WHERE c.channel = 'web_form'
|
||||||
SELECT u.unified_id
|
AND (
|
||||||
FROM clpr_user_accounts ua
|
-- Вариант 1: Поиск через unified_id (если есть запись в clpr_user_accounts)
|
||||||
JOIN clpr_users u ON u.id = ua.user_id
|
c.unified_id = (
|
||||||
WHERE ua.channel = 'web_form'
|
SELECT u.unified_id
|
||||||
AND ua.channel_user_id = $1
|
FROM clpr_user_accounts ua
|
||||||
LIMIT 1
|
JOIN clpr_users u ON u.id = ua.user_id
|
||||||
)
|
WHERE ua.channel = 'web_form'
|
||||||
|
AND ua.channel_user_id = $1
|
||||||
|
LIMIT 1
|
||||||
|
)
|
||||||
|
-- Вариант 2: Прямой поиск по телефону в payload (если unified_id не установлен)
|
||||||
|
OR (c.unified_id IS NULL AND c.payload->>'phone' = $1)
|
||||||
|
)
|
||||||
AND (c.status_code != 'approved' OR c.status_code IS NULL)
|
AND (c.status_code != 'approved' OR c.status_code IS NULL)
|
||||||
AND (c.is_confirmed IS NULL OR c.is_confirmed = false)
|
AND (c.is_confirmed IS NULL OR c.is_confirmed = false)
|
||||||
ORDER BY c.updated_at DESC
|
ORDER BY c.updated_at DESC
|
||||||
|
|||||||
1
workflow2_lock
Normal file
1
workflow2_lock
Normal file
@@ -0,0 +1 @@
|
|||||||
|
locked
|
||||||
Reference in New Issue
Block a user