fix(card): 修复卡片批量删除未全部删除
feat(db): 新增`deletes`方法, 删除方法调整为sql `delete`
This commit is contained in:
@@ -7,7 +7,7 @@
|
|||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import List, Optional, Union, NewType, Dict, Any, Tuple
|
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.ext.asyncio import AsyncSession
|
||||||
from sqlalchemy.future import select
|
from sqlalchemy.future import select
|
||||||
|
|
||||||
@@ -137,17 +137,20 @@ class CRUD:
|
|||||||
async def delete(self, filters: dict, model: Model = None) -> bool:
|
async def delete(self, filters: dict, model: Model = None) -> bool:
|
||||||
model = model or self.model
|
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))
|
*self.build_filter_conditions(filters, model))
|
||||||
)
|
)
|
||||||
record = result.scalars().first()
|
|
||||||
|
|
||||||
if not record:
|
|
||||||
return False
|
|
||||||
|
|
||||||
await self.session.delete(record)
|
|
||||||
await self.session.commit()
|
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:
|
async def total(self, filters: dict, model: Model = None) -> int:
|
||||||
model = model or self.model
|
model = model or self.model
|
||||||
|
|||||||
@@ -303,7 +303,7 @@ async def delete_card(
|
|||||||
):
|
):
|
||||||
# 删除关联关系
|
# 删除关联关系
|
||||||
db_crud = CRUD(db_session, UserCollection)
|
db_crud = CRUD(db_session, UserCollection)
|
||||||
state = await db_crud.delete(
|
state = await db_crud.deletes(
|
||||||
filters={
|
filters={
|
||||||
'card_id__in': payload.card_ids,
|
'card_id__in': payload.card_ids,
|
||||||
'user_id': login_user.user_id
|
'user_id': login_user.user_id
|
||||||
@@ -313,7 +313,7 @@ async def delete_card(
|
|||||||
if state is True:
|
if state is True:
|
||||||
# 删除原始卡片(自定义)
|
# 删除原始卡片(自定义)
|
||||||
db_crud = CRUD(db_session, Card)
|
db_crud = CRUD(db_session, Card)
|
||||||
await db_crud.delete(
|
await db_crud.deletes(
|
||||||
filters={
|
filters={
|
||||||
'id__in': payload.card_ids,
|
'id__in': payload.card_ids,
|
||||||
'create_user_id': login_user.user_id,
|
'create_user_id': login_user.user_id,
|
||||||
|
|||||||
Reference in New Issue
Block a user