# -*- coding = utf-8 -*- # @Time : 2025/2/17 上午1:00 # @File : services.py # @Software : PyCharm # @Author : xingc # @Desc : from sqlalchemy import select from sqlalchemy.ext.asyncio import AsyncSession from core.db.crud import CRUD from core.db.models import SearchCardCache, User, UserCollection from core.routers.auth.schema import LoginUser from config import settings async def get_cache_card_by_number(db_session: AsyncSession, *, cert_number: str) -> SearchCardCache | None: query = select(SearchCardCache).where(SearchCardCache.cert_number == cert_number) result = await db_session.execute(query) card: SearchCardCache | None = result.scalar_one_or_none() return card async def check_user_card_created_permission(db_session: AsyncSession, *, login_user: LoginUser) -> bool: db_crud = CRUD(db_session, User) user = await db_crud.get(filters={'user_id': login_user.user_id}) if user.is_vip(): return True total = await db_crud.total(model=UserCollection, filters={'user_id': login_user.user_id}) return settings.USER_MAX_CREATED_CARD_NUM > total