feat: добавлена диагностика статусов заявлений в debug
- Добавлены test_count_approved и test_count_confirmed для диагностики - Показывает, сколько заявлений со статусом approved и is_confirmed = true - Помогает понять, почему заявления не возвращаются в списке
This commit is contained in:
@@ -202,8 +202,10 @@ async def list_drafts(
|
||||
c.updated_at
|
||||
FROM clpr_claims c
|
||||
WHERE c.unified_id = $1
|
||||
AND (c.status_code != 'approved' OR c.status_code IS NULL)
|
||||
-- Исключаем только подтверждённые заявления (is_confirmed = true)
|
||||
-- Статус 'approved' тоже исключаем, но можно показывать другие статусы
|
||||
AND (c.is_confirmed IS NULL OR c.is_confirmed = false)
|
||||
AND (c.status_code != 'approved' OR c.status_code IS NULL)
|
||||
ORDER BY c.updated_at DESC
|
||||
LIMIT 20
|
||||
"""
|
||||
@@ -212,9 +214,6 @@ async def list_drafts(
|
||||
elif phone:
|
||||
# Fallback: ищем через clpr_user_accounts и clpr_users, ИЛИ напрямую по телефону в payload
|
||||
# Поддерживаем разные форматы телефона: 71234543212, +71234543212, 81234543212
|
||||
# Нормализуем телефон для поиска (убираем + и заменяем 8 на 7)
|
||||
normalized_phone = phone.lstrip('+').replace('8', '7', 1) if phone.startswith('8') else phone.lstrip('+')
|
||||
|
||||
query = """
|
||||
SELECT DISTINCT
|
||||
c.id,
|
||||
@@ -283,9 +282,22 @@ async def list_drafts(
|
||||
# Простой тест: проверяем, что unified_id вообще есть в базе
|
||||
test_count = 0
|
||||
test_count_null = 0
|
||||
test_count_approved = 0
|
||||
test_count_confirmed = 0
|
||||
if unified_id:
|
||||
try:
|
||||
# Все заявления с этим unified_id
|
||||
test_count = await db.fetch_val("SELECT COUNT(*) FROM clpr_claims WHERE unified_id = $1", unified_id)
|
||||
# Заявления со статусом approved
|
||||
test_count_approved = await db.fetch_val("""
|
||||
SELECT COUNT(*) FROM clpr_claims
|
||||
WHERE unified_id = $1 AND status_code = 'approved'
|
||||
""", unified_id)
|
||||
# Заявления с is_confirmed = true
|
||||
test_count_confirmed = await db.fetch_val("""
|
||||
SELECT COUNT(*) FROM clpr_claims
|
||||
WHERE unified_id = $1 AND is_confirmed = true
|
||||
""", unified_id)
|
||||
# Также проверяем, сколько записей с NULL unified_id для этого пользователя (через phone)
|
||||
if phone:
|
||||
test_count_null = await db.fetch_val("""
|
||||
@@ -294,7 +306,7 @@ async def list_drafts(
|
||||
AND c.channel = 'web_form'
|
||||
AND c.payload->>'phone' = $1
|
||||
""", phone)
|
||||
logger.info(f"🔍 Test COUNT: unified_id={unified_id} → {test_count} records")
|
||||
logger.info(f"🔍 Test COUNT: unified_id={unified_id} → {test_count} total, {test_count_approved} approved, {test_count_confirmed} confirmed")
|
||||
if test_count_null > 0:
|
||||
logger.warning(f"⚠️ Found {test_count_null} records with NULL unified_id for phone={phone}")
|
||||
except Exception as e:
|
||||
@@ -313,6 +325,8 @@ async def list_drafts(
|
||||
debug_info = {
|
||||
"unified_id": unified_id,
|
||||
"test_count": test_count,
|
||||
"test_count_approved": test_count_approved if unified_id else 0,
|
||||
"test_count_confirmed": test_count_confirmed if unified_id else 0,
|
||||
"test_count_null": test_count_null,
|
||||
"rows_found": len(rows),
|
||||
"query": query[:200] if len(query) > 200 else query,
|
||||
|
||||
Reference in New Issue
Block a user