fix(card): 修复卡片批量删除未全部删除

feat(db): 新增`deletes`方法, 删除方法调整为sql `delete`
This commit is contained in:
xingc
2025-04-29 15:42:22 +08:00
parent 9ae7518a08
commit 2611ab7587
2 changed files with 14 additions and 11 deletions

View File

@@ -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