feat:协程搜索 part2

This commit is contained in:
jxxghp
2025-07-31 21:26:55 +08:00
parent 109164b673
commit 3fc2c7d6cc
4 changed files with 321 additions and 6 deletions

View File

@@ -1,9 +1,10 @@
from datetime import datetime
from sqlalchemy import Boolean, Column, Integer, String, Sequence, JSON
from sqlalchemy import Boolean, Column, Integer, String, Sequence, JSON, select
from sqlalchemy.ext.asyncio import AsyncSession
from sqlalchemy.orm import Session
from app.db import db_query, db_update, Base
from app.db import db_query, db_update, Base, async_db_query
class Site(Base):
@@ -59,11 +60,23 @@ class Site(Base):
def get_by_domain(cls, db: Session, domain: str):
return db.query(cls).filter(cls.domain == domain).first()
@classmethod
@async_db_query
async def async_get_by_domain(cls, db: AsyncSession, domain: str):
result = await db.execute(select(cls).where(cls.domain == domain))
return result.scalar_one_or_none()
@classmethod
@db_query
def get_actives(cls, db: Session):
return db.query(cls).filter(cls.is_active == 1).all()
@classmethod
@async_db_query
async def async_get_actives(cls, db: AsyncSession):
result = await db.execute(select(cls).where(cls.is_active == 1))
return result.all()
@classmethod
@db_query
def list_order_by_pri(cls, db: Session):

View File

@@ -47,6 +47,12 @@ class SiteOper(DbOper):
"""
return Site.get_actives(self._db)
async def async_list_active(self) -> List[Site]:
"""
异步按状态获取站点列表
"""
return await Site.async_get_actives(self._db)
def delete(self, sid: int):
"""
删除站点
@@ -67,6 +73,12 @@ class SiteOper(DbOper):
"""
return Site.get_by_domain(self._db, domain)
async def async_get_by_domain(self, domain: str) -> Site:
"""
异步按域名获取站点
"""
return await Site.async_get_by_domain(self._db, domain)
def get_domains_by_ids(self, ids: List[int]) -> List[str]:
"""
按ID获取站点域名