From 4b4379ae4a15897a129f555dfe08cca7fccad5a0 Mon Sep 17 00:00:00 2001 From: KimigaiiWuyi <444835641@qq.com> Date: Sat, 12 Oct 2024 07:24:38 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20`update=5Fdata=5Fby=5Fuid()`?= =?UTF-8?q?=E5=85=81=E8=AE=B8`bot=5Fid`=E4=BC=A0=E5=85=A5None?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gsuid_core/utils/database/base_models.py | 10 ++++++---- gsuid_core/utils/database/config_switch.py | 10 ++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/gsuid_core/utils/database/base_models.py b/gsuid_core/utils/database/base_models.py index 721d35d..92cd8b5 100644 --- a/gsuid_core/utils/database/base_models.py +++ b/gsuid_core/utils/database/base_models.py @@ -334,7 +334,7 @@ class BaseBotIDModel(BaseIDModel): cls, session: AsyncSession, uid: str, - bot_id: str, + bot_id: Optional[str] = None, game_name: Optional[str] = None, **data, ) -> int: @@ -369,9 +369,11 @@ class BaseBotIDModel(BaseIDModel): data[uid_name] = uid return await cls.full_insert_data(bot_id=bot_id, **data) - sql = update(cls).where( - and_(getattr(cls, uid_name) == uid, cls.bot_id == bot_id) - ) + sql = update(cls).where(and_(getattr(cls, uid_name) == uid)) + + if bot_id is not None: + sql = sql.where(cls.bot_id == bot_id) + if data is not None: query = sql.values(**data) query.execution_options(synchronize_session='fetch') diff --git a/gsuid_core/utils/database/config_switch.py b/gsuid_core/utils/database/config_switch.py index 4749486..52a2a1e 100644 --- a/gsuid_core/utils/database/config_switch.py +++ b/gsuid_core/utils/database/config_switch.py @@ -11,7 +11,7 @@ async def set_database_value( command_start: str, command_value: str, uid: str, - bot_id: str, + bot_id: Optional[str], value: str, ): fields = model.__fields__ @@ -36,7 +36,7 @@ async def set_database_value( title = title if title else keyname if desc: if desc == f'{command_start}{command_value}': - await model.update_data_by_uid( + retcode = await model.update_data_by_uid( uid, bot_id, game_name, @@ -44,5 +44,7 @@ async def set_database_value( f'{keyname}': value, }, ) - - return f'✅{title}\n📝已设置为{value}' + if retcode == 0: + return f'✅{title}\n📝已设置为{value}' + else: + return f'❌{title}\n📝设置失败'