From 242b0ec2b922a092b9fecdc4a17060991b0c9385 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wuyi=E6=97=A0=E7=96=91?= <444835641@qq.com> Date: Sat, 22 Jul 2023 03:20:02 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20=E4=BF=AE=E5=A4=8D=E4=B8=80?= =?UTF-8?q?=E4=BA=9BBUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gsuid_core/client.py | 2 +- gsuid_core/utils/database/dal.py | 21 ++++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/gsuid_core/client.py b/gsuid_core/client.py index 7e2e68c..9eb8fa8 100644 --- a/gsuid_core/client.py +++ b/gsuid_core/client.py @@ -47,7 +47,7 @@ class GsClient: bot_id='Nonebot222', user_type='direct', user_pm=1, - group_id=None, + group_id='12345678888', user_id='511', content=content, ) diff --git a/gsuid_core/utils/database/dal.py b/gsuid_core/utils/database/dal.py index 9eab8ea..502764c 100644 --- a/gsuid_core/utils/database/dal.py +++ b/gsuid_core/utils/database/dal.py @@ -2,8 +2,8 @@ import re import asyncio from typing import Dict, List, Literal, Optional -from sqlmodel import SQLModel from sqlalchemy.sql import text +from sqlmodel import SQLModel, col from sqlalchemy.future import select from sqlalchemy import delete, update from sqlalchemy.orm import sessionmaker @@ -160,6 +160,25 @@ class SQLA: uid_list.extend(item.uid.split("_") if item.uid else []) return uid_list + async def get_bind_group_list(self, user_id: str) -> List[str]: + data = await self.select_bind_data(user_id) + return data.group_id.split("_") if data and data.group_id else [] + + async def get_bind_group(self, user_id: str) -> Optional[str]: + data = await self.get_bind_group_list(user_id) + return data[0] if data else None + + async def get_group_all_uid(self, group_id: str): + async with self.async_session() as session: + async with session.begin(): + result = await session.scalars( + select(GsBind).where( + col(GsBind.group_id).contains(group_id) + ) + ) + data = result.all() + return data[0] if data else None + async def get_bind_uid_list(self, user_id: str) -> List[str]: data = await self.select_bind_data(user_id) return data.uid.split("_") if data and data.uid else []