v1.35 КРИТИЧЕСКОЕ ИСПРАВЛЕНИЕ ВЕРИФИКАЦИИ
🐛 ПРОБЛЕМА: • Жильцы писали номер квартиры — он НЕ СОХРАНЯЛСЯ • 11 человек верифицированы БЕЗ квартиры! • Авто-верификация верифицировала без проверки квартиры 🔧 ИСПРАВЛЕНИЯ: 1️⃣ web/app.py — auto_verify: • Теперь верифицирует ТОЛЬКО с квартирой • Проверка: apartment != None AND apartment != '' 2️⃣ handlers/verification.py — process_verification: • Если верифицирован БЕЗ квартиры → СОХРАНЯЕТ! • Если верифицирован С квартирой → сообщение • Для неверифицированных → как раньше ✅ РЕЗУЛЬТАТ: • Жильцы смогут добавить квартиру постфактум • Авто-верификация не сломает данные • 11 человек смогут восстановить квартиры 📝 ФАЙЛЫ: • web/app.py: auto_verify fix • handlers/verification.py: apartment save fix Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
parent
75a17a3de5
commit
1e61eca60c
2 changed files with 37 additions and 14 deletions
|
|
@ -197,8 +197,25 @@ async def process_verification(message: Message, apartment: str):
|
|||
session.add(user)
|
||||
else:
|
||||
logger.info(f'Пользователь найден: verified={user.verified}, apartment={user.apartment}')
|
||||
|
||||
# Если уже верифицирован
|
||||
if user.verified:
|
||||
# Но квартиры нет — сохраняем!
|
||||
if not user.apartment:
|
||||
user.apartment = apartment_upper
|
||||
await session.commit()
|
||||
logger.info(f'Сохранена квартира для верифицированного: {apartment_upper}')
|
||||
|
||||
await message.answer(
|
||||
f'✅ <b>Квартира сохранена!</b>\n\n'
|
||||
f'Квартира: <code>{apartment_upper}</code>\n\n'
|
||||
f'Вы уже были верифицированы.\n'
|
||||
f'Теперь ваша квартира привязана к аккаунту!',
|
||||
parse_mode='HTML'
|
||||
)
|
||||
return
|
||||
else:
|
||||
# Уже есть квартира
|
||||
await message.answer(
|
||||
f'✅ Вы уже верифицированы (кв. {user.apartment})\n\n'
|
||||
'Если нужно изменить квартиру, обратитесь к администратору.',
|
||||
|
|
@ -206,7 +223,7 @@ async def process_verification(message: Message, apartment: str):
|
|||
)
|
||||
return
|
||||
|
||||
# Обновляем квартиру
|
||||
# Обновляем квартиру для неверифицированных
|
||||
user.apartment = apartment_upper
|
||||
|
||||
# Создаём заявку на верификацию (если ещё нет активной)
|
||||
|
|
|
|||
12
web/app.py
12
web/app.py
|
|
@ -158,10 +158,16 @@ async def users_page(request: Request, search: str = "", filter: str = "", usern
|
|||
|
||||
@app.post("/api/users/auto_verify")
|
||||
async def api_auto_verify_users(username: str = Depends(get_current_admin)):
|
||||
"""Автоверификация активных пользователей"""
|
||||
"""Автоверификация активных пользователей (ТОЛЬКО с квартирой!)"""
|
||||
async with AsyncSessionLocal() as session:
|
||||
# Находим активных (50+ сообщений) которые не верифицированы
|
||||
stmt = select(User).where(User.verified == False, User.message_count >= 50)
|
||||
# И у которых УЖЕ ЕСТЬ квартира!
|
||||
stmt = select(User).where(
|
||||
User.verified == False,
|
||||
User.message_count >= 50,
|
||||
User.apartment != None,
|
||||
User.apartment != ''
|
||||
)
|
||||
result = await session.execute(stmt)
|
||||
active_users = list(result.scalars().all())
|
||||
|
||||
|
|
@ -175,7 +181,7 @@ async def api_auto_verify_users(username: str = Depends(get_current_admin)):
|
|||
|
||||
await session.commit()
|
||||
|
||||
return JSONResponse({"success": True, "message": f"Верифицировано {verified_count} активных пользователей"})
|
||||
return JSONResponse({"success": True, "message": f"Верифицировано {verified_count} активных пользователей с квартирой"})
|
||||
|
||||
|
||||
@app.post("/api/user/{user_id}/update")
|
||||
|
|
|
|||
Loading…
Reference in a new issue