Skip to content

Fix login and operation log clearing #728

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 16, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 2 additions & 4 deletions backend/app/admin/api/v1/log/login_log.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()
6 changes: 2 additions & 4 deletions backend/app/admin/api/v1/log/opera_log.py
Original file line number Diff line number Diff line change
Expand Up @@ -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()
6 changes: 4 additions & 2 deletions backend/app/admin/crud/crud_login_log.py
Original file line number Diff line number Diff line change
@@ -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

Expand Down Expand Up @@ -51,14 +52,15 @@ async def delete(self, db: AsyncSession, pks: list[int]) -> int:
"""
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)
6 changes: 4 additions & 2 deletions backend/app/admin/crud/crud_opera_log.py
Original file line number Diff line number Diff line change
@@ -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

Expand Down Expand Up @@ -51,14 +52,15 @@ async def delete(self, db: AsyncSession, pks: list[int]) -> int:
"""
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)
5 changes: 2 additions & 3 deletions backend/app/admin/service/login_log_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -83,11 +83,10 @@ async def delete(*, obj: DeleteLoginLogParam) -> int:
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()
5 changes: 2 additions & 3 deletions backend/app/admin/service/opera_log_service.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,11 +46,10 @@ async def delete(*, obj: DeleteOperaLogParam) -> int:
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()
4 changes: 2 additions & 2 deletions backend/app/task/tasks/beat.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,11 @@
'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'),
},
}
12 changes: 6 additions & 6 deletions backend/app/task/tasks/db_log/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@


@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'
2 changes: 1 addition & 1 deletion uv.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.