From b4b30e59c74a7b4af3d19b5c5b9ed797606569e1 Mon Sep 17 00:00:00 2001 From: HibiKier <775757368@qq.com> Date: Tue, 30 Jul 2024 00:06:29 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20:=20=E7=94=A8=E6=88=B7=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=BF=81=E7=A7=BB=E5=8C=85=E6=8B=ACuid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- zhenxun/builtin_plugins/__init__.py | 15 +++++++++++---- zhenxun/models/user_console.py | 3 ++- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/zhenxun/builtin_plugins/__init__.py b/zhenxun/builtin_plugins/__init__.py index 91e350b8..4045c9aa 100644 --- a/zhenxun/builtin_plugins/__init__.py +++ b/zhenxun/builtin_plugins/__init__.py @@ -7,6 +7,7 @@ from tortoise import Tortoise from tortoise.exceptions import OperationalError from zhenxun.models.goods_info import GoodsInfo +from zhenxun.models.group_member_info import GroupInfoUser from zhenxun.models.sign_user import SignUser from zhenxun.models.user_console import UserConsole from zhenxun.services.log import logger @@ -69,6 +70,8 @@ async def _(): and not await SignUser.annotate().count() ): try: + group_user = await GroupInfoUser.filter(uid__isnull=False).all() + user2uid = {u.user_id: u.uid for u in group_user} flag = False db = Tortoise.get_connection("default") old_sign_list = await db.execute_query_dict(SIGN_SQL) @@ -79,7 +82,7 @@ async def _(): } create_list = [] sign_id_list = [] - uid = await UserConsole.get_new_uid() + max_uid = max(user2uid.values()) + 1 for old_sign in old_sign_list: sign_id_list.append(old_sign["user_id"]) old_bag = [ @@ -97,16 +100,20 @@ async def _(): UserConsole( user_id=old_sign["user_id"], platform="qq", - uid=uid, + uid=user2uid.get(old_sign["user_id"]) or max_uid, props=props, gold=old_bag["gold"], ) ) + if not user2uid.get(old_sign["user_id"]): + max_uid += 1 else: create_list.append( - UserConsole(user_id=old_sign["user_id"], platform="qq", uid=uid) + UserConsole( + user_id=old_sign["user_id"], platform="qq", uid=max_uid + ) ) - uid += 1 + max_uid += 1 if create_list: logger.info("开始迁移用户数据...") await UserConsole.bulk_create(create_list, 10) diff --git a/zhenxun/models/user_console.py b/zhenxun/models/user_console.py index c743dd54..8ac2a204 100644 --- a/zhenxun/models/user_console.py +++ b/zhenxun/models/user_console.py @@ -131,7 +131,8 @@ class UserConsole(Model): platform: 平台. """ user, _ = await cls.get_or_create( - user_id=user_id, defaults={"platform": platform, "uid": cls.get_new_uid()} + user_id=user_id, + defaults={"platform": platform, "uid": await cls.get_new_uid()}, ) if goods_uuid not in user.props: user.props[goods_uuid] = 0