Fix login and operation log clearing (#728)

This commit is contained in:
Wu Clan
2025-07-16 13:34:37 +08:00
committed by GitHub
parent e45d2d6fe7
commit f2d3c39425
9 changed files with 25 additions and 27 deletions
+2 -4
View File
@@ -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()
+2 -4
View File
@@ -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()
+4 -2
View File
@@ -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)
+4 -2
View File
@@ -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()
+2 -2
View File
@@ -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 -6
View File
@@ -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'