From 2611ab7587f586bd9424df8b57a92c2122fab81d Mon Sep 17 00:00:00 2001 From: xingc Date: Tue, 29 Apr 2025 15:42:22 +0800 Subject: [PATCH] =?UTF-8?q?fix(card):=20=E4=BF=AE=E5=A4=8D=E5=8D=A1?= =?UTF-8?q?=E7=89=87=E6=89=B9=E9=87=8F=E5=88=A0=E9=99=A4=E6=9C=AA=E5=85=A8?= =?UTF-8?q?=E9=83=A8=E5=88=A0=E9=99=A4=20feat(db):=20=E6=96=B0=E5=A2=9E`de?= =?UTF-8?q?letes`=E6=96=B9=E6=B3=95,=20=E5=88=A0=E9=99=A4=E6=96=B9?= =?UTF-8?q?=E6=B3=95=E8=B0=83=E6=95=B4=E4=B8=BAsql=20`delete`?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/db/crud.py | 21 ++++++++++++--------- core/routers/card/routes.py | 4 ++-- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/core/db/crud.py b/core/db/crud.py index b40f1bd..d7a9901 100644 --- a/core/db/crud.py +++ b/core/db/crud.py @@ -7,7 +7,7 @@ from datetime import datetime from typing import List, Optional, Union, NewType, Dict, Any, Tuple -from sqlalchemy import func, desc +from sqlalchemy import func, desc, delete, CursorResult from sqlalchemy.ext.asyncio import AsyncSession from sqlalchemy.future import select @@ -137,17 +137,20 @@ class CRUD: async def delete(self, filters: dict, model: Model = None) -> bool: model = model or self.model - result = await self.session.execute(select(model).filter( + result = await self.session.execute(delete(model).filter( *self.build_filter_conditions(filters, model)) ) - record = result.scalars().first() - - if not record: - return False - - await self.session.delete(record) await self.session.commit() - return True + return result.rowcount > 0 + + async def deletes(self, filters: dict, model: Model = None) -> bool: + model = model or self.model + + result = await self.session.execute(delete(model).filter( + *self.build_filter_conditions(filters, model)) + ) + await self.session.commit() + return result.rowcount > 0 async def total(self, filters: dict, model: Model = None) -> int: model = model or self.model diff --git a/core/routers/card/routes.py b/core/routers/card/routes.py index 885ce31..e406b2e 100644 --- a/core/routers/card/routes.py +++ b/core/routers/card/routes.py @@ -303,7 +303,7 @@ async def delete_card( ): # 删除关联关系 db_crud = CRUD(db_session, UserCollection) - state = await db_crud.delete( + state = await db_crud.deletes( filters={ 'card_id__in': payload.card_ids, 'user_id': login_user.user_id @@ -313,7 +313,7 @@ async def delete_card( if state is True: # 删除原始卡片(自定义) db_crud = CRUD(db_session, Card) - await db_crud.delete( + await db_crud.deletes( filters={ 'id__in': payload.card_ids, 'create_user_id': login_user.user_id,