feat(db): 新增crud.total方法
This commit is contained in:
@@ -149,6 +149,14 @@ class CRUD:
|
||||
await self.session.commit()
|
||||
return True
|
||||
|
||||
async def total(self, filters: dict, model: Model = None) -> int:
|
||||
model = model or self.model
|
||||
|
||||
result = await self.session.execute(select(func.count()).filter(
|
||||
*self.build_filter_conditions(filters, model))
|
||||
)
|
||||
return result.scalar()
|
||||
|
||||
def build_filter_conditions(self, filters: Dict[str, Any], model: Model) -> tuple:
|
||||
conditions = []
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ from sqlalchemy.ext.asyncio import AsyncSession
|
||||
from core.base import schema as base_schema
|
||||
from core.db.crud import CRUD
|
||||
from core.db.engine import get_async_session
|
||||
from core.db.models import User, UserFollows
|
||||
from core.db.models import User, UserFollows, UserCollection
|
||||
from core.routers.auth.schema import LoginUser
|
||||
from core.routers.auth.services import get_current_user_form_http
|
||||
|
||||
@@ -33,6 +33,12 @@ async def get_me_info(
|
||||
if user is None:
|
||||
raise HTTPException(status_code=status.HTTP_404_NOT_FOUND, detail='用户不存在')
|
||||
|
||||
user.displayed_card_total = await db_crud.total(
|
||||
model=UserCollection,
|
||||
filters={
|
||||
'user_id': login_user.user_id,
|
||||
'displayed': True}
|
||||
)
|
||||
return {'data': user}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user