mirror of
https://github.com/fastapi-practices/fastapi-best-architecture.git
synced 2026-09-21 13:12:24 +00:00
Fix login and operation log clearing (#728)
This commit is contained in:
@@ -59,7 +59,5 @@ async def delete_login_logs(obj: DeleteLoginLogParam) -> ResponseModel:
|
||||
],
|
||||
)
|
||||
async def delete_all_login_logs() -> ResponseModel:
|
||||
count = await login_log_service.delete_all()
|
||||
if count > 0:
|
||||
return response_base.success()
|
||||
return response_base.fail()
|
||||
await login_log_service.delete_all()
|
||||
return response_base.success()
|
||||
|
||||
@@ -59,7 +59,5 @@ async def delete_opera_logs(obj: DeleteOperaLogParam) -> ResponseModel:
|
||||
],
|
||||
)
|
||||
async def delete_all_opera_logs() -> ResponseModel:
|
||||
count = await opera_log_service.delete_all()
|
||||
if count > 0:
|
||||
return response_base.success()
|
||||
return response_base.fail()
|
||||
await opera_log_service.delete_all()
|
||||
return response_base.success()
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
from sqlalchemy import Select
|
||||
from sqlalchemy import delete as sa_delete
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
from sqlalchemy_crud_plus import CRUDPlus
|
||||
|
||||
@@ -51,14 +52,15 @@ class CRUDLoginLog(CRUDPlus[LoginLog]):
|
||||
"""
|
||||
return await self.delete_model_by_column(db, allow_multiple=True, id__in=pks)
|
||||
|
||||
async def delete_all(self, db: AsyncSession) -> int:
|
||||
@staticmethod
|
||||
async def delete_all(db: AsyncSession) -> None:
|
||||
"""
|
||||
删除所有日志
|
||||
|
||||
:param db: 数据库会话
|
||||
:return:
|
||||
"""
|
||||
return await self.delete_model_by_column(db, allow_multiple=True)
|
||||
await db.execute(sa_delete(LoginLog))
|
||||
|
||||
|
||||
login_log_dao: CRUDLoginLog = CRUDLoginLog(LoginLog)
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
from sqlalchemy import Select
|
||||
from sqlalchemy import delete as sa_delete
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
from sqlalchemy_crud_plus import CRUDPlus
|
||||
|
||||
@@ -51,14 +52,15 @@ class CRUDOperaLogDao(CRUDPlus[OperaLog]):
|
||||
"""
|
||||
return await self.delete_model_by_column(db, allow_multiple=True, id__in=pks)
|
||||
|
||||
async def delete_all(self, db: AsyncSession) -> int:
|
||||
@staticmethod
|
||||
async def delete_all(db: AsyncSession) -> None:
|
||||
"""
|
||||
删除所有日志
|
||||
|
||||
:param db: 数据库会话
|
||||
:return:
|
||||
"""
|
||||
return await self.delete_model_by_column(db, allow_multiple=True)
|
||||
await db.execute(sa_delete(OperaLog))
|
||||
|
||||
|
||||
opera_log_dao: CRUDOperaLogDao = CRUDOperaLogDao(OperaLog)
|
||||
|
||||
@@ -83,11 +83,10 @@ class LoginLogService:
|
||||
return count
|
||||
|
||||
@staticmethod
|
||||
async def delete_all() -> int:
|
||||
async def delete_all() -> None:
|
||||
"""清空所有登录日志"""
|
||||
async with async_db_session.begin() as db:
|
||||
count = await login_log_dao.delete_all(db)
|
||||
return count
|
||||
await login_log_dao.delete_all(db)
|
||||
|
||||
|
||||
login_log_service: LoginLogService = LoginLogService()
|
||||
|
||||
@@ -46,11 +46,10 @@ class OperaLogService:
|
||||
return count
|
||||
|
||||
@staticmethod
|
||||
async def delete_all() -> int:
|
||||
async def delete_all() -> None:
|
||||
"""清空所有操作日志"""
|
||||
async with async_db_session.begin() as db:
|
||||
count = await opera_log_dao.delete_all(db)
|
||||
return count
|
||||
await opera_log_dao.delete_all(db)
|
||||
|
||||
|
||||
opera_log_service: OperaLogService = OperaLogService()
|
||||
|
||||
@@ -14,11 +14,11 @@ LOCAL_BEAT_SCHEDULE = {
|
||||
'schedule': TzAwareCrontab('1'),
|
||||
},
|
||||
'清理操作日志': {
|
||||
'task': 'app.task.tasks.db_log.tasks.delete_db_opera_log',
|
||||
'task': 'backend.app.task.tasks.db_log.tasks.delete_db_opera_log',
|
||||
'schedule': TzAwareCrontab('0', '0', day_of_week='6'),
|
||||
},
|
||||
'清理登录日志': {
|
||||
'task': 'app.task.tasks.db_log.tasks.delete_db_login_log',
|
||||
'task': 'backend.app.task.tasks.db_log.tasks.delete_db_login_log',
|
||||
'schedule': TzAwareCrontab('0', '0', day_of_month='15'),
|
||||
},
|
||||
}
|
||||
|
||||
@@ -6,14 +6,14 @@ from backend.app.task.celery import celery_app
|
||||
|
||||
|
||||
@celery_app.task
|
||||
async def delete_db_opera_log() -> int:
|
||||
async def delete_db_opera_log() -> str:
|
||||
"""自动删除数据库操作日志"""
|
||||
result = await opera_log_service.delete_all()
|
||||
return result
|
||||
await opera_log_service.delete_all()
|
||||
return 'Success'
|
||||
|
||||
|
||||
@celery_app.task
|
||||
async def delete_db_login_log() -> int:
|
||||
async def delete_db_login_log() -> str:
|
||||
"""自动删除数据库登录日志"""
|
||||
result = await login_log_service.delete_all()
|
||||
return result
|
||||
await login_log_service.delete_all()
|
||||
return 'Success'
|
||||
|
||||
Reference in New Issue
Block a user