diff --git a/backend/app/admin/service/auth_service.py b/backend/app/admin/service/auth_service.py index a74b783c..a55a0094 100644 --- a/backend/app/admin/service/auth_service.py +++ b/backend/app/admin/service/auth_service.py @@ -146,7 +146,6 @@ class AuthService: log.error('登陆错误: 用户密码有误') task = BackgroundTask( login_log_service.create, - db=db, user_uuid=user.uuid if user else uuid4_str(), username=obj.username, login_time=timezone.now(), @@ -160,7 +159,6 @@ class AuthService: else: background_tasks.add_task( login_log_service.create, - db=db, user_uuid=user.uuid, username=obj.username, login_time=timezone.now(), diff --git a/backend/app/admin/service/login_log_service.py b/backend/app/admin/service/login_log_service.py index 21db54d3..5aad1c66 100644 --- a/backend/app/admin/service/login_log_service.py +++ b/backend/app/admin/service/login_log_service.py @@ -8,6 +8,7 @@ from backend.app.admin.schema.login_log import CreateLoginLogParam, DeleteLoginL from backend.common.context import ctx from backend.common.log import log from backend.common.pagination import paging_data +from backend.database.db import async_db_session class LoginLogService: @@ -30,7 +31,6 @@ class LoginLogService: @staticmethod async def create( *, - db: AsyncSession, user_uuid: str, username: str, login_time: datetime, @@ -40,7 +40,6 @@ class LoginLogService: """ 创建登录日志 - :param db: 数据库会话 :param user_uuid: 用户 UUID :param username: 用户名 :param login_time: 登录时间 @@ -64,7 +63,9 @@ class LoginLogService: msg=msg, login_time=login_time, ) - await login_log_dao.create(db, obj) + # 为后台任务创建独立数据库会话 + async with async_db_session.begin() as db: + await login_log_dao.create(db, obj) except Exception as e: log.error(f'登录日志创建失败: {e}') diff --git a/backend/plugin/oauth2/service/oauth2_service.py b/backend/plugin/oauth2/service/oauth2_service.py index a13b475f..b80be327 100644 --- a/backend/plugin/oauth2/service/oauth2_service.py +++ b/backend/plugin/oauth2/service/oauth2_service.py @@ -107,7 +107,6 @@ class OAuth2Service: await db.refresh(sys_user) background_tasks.add_task( login_log_service.create, - db=db, user_uuid=sys_user.uuid, username=sys_user.username, login_time=timezone.now(),