From e6b3f79fa0d687fdbf913ad54b3dc2c227926c8e Mon Sep 17 00:00:00 2001 From: zxstty Date: Sat, 29 Nov 2025 11:23:50 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9F=A5=E8=AF=A2=E7=94=A8?= =?UTF-8?q?=E6=88=B7=E5=85=A8=E9=83=A8=E5=9B=A2=E9=98=9F=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- data_chain/manager/team_manager.py | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/data_chain/manager/team_manager.py b/data_chain/manager/team_manager.py index 850f09b..d6ef78b 100644 --- a/data_chain/manager/team_manager.py +++ b/data_chain/manager/team_manager.py @@ -104,15 +104,24 @@ class TeamManager: """列出我创建或加入的团队""" try: async with await DataBase.get_session() as session: - stmt = select(TeamEntity).where(and_( - TeamEntity.author_id == user_sub, TeamEntity.status != TeamStatus.DELETED.value)) + # 合并查询:创建者 或 成员(排除自己创建的情况) + stmt = select(TeamEntity).where( + TeamEntity.status != TeamStatus.DELETED.value, + or_( + TeamEntity.author_id == user_sub, + exists( + select(TeamUserEntity.team_id) + .where( + TeamUserEntity.team_id == TeamEntity.id, + TeamUserEntity.user_id == user_sub, + TeamEntity.author_id != user_sub + ) + ) + ) + ).order_by(TeamEntity.created_time.desc()) + result = await session.execute(stmt) team_entities = result.scalars().all() - stmt = select(TeamEntity).join(TeamUserEntity, TeamEntity.id == TeamUserEntity.team_id).where( - and_(TeamUserEntity.user_id == user_sub, TeamEntity.author_id != user_sub, TeamEntity.status != TeamStatus.DELETED.value)) - result = await session.execute(stmt) - team_entities += result.scalars().all() - team_entities.sort(key=lambda x: x.created_time, reverse=True) return team_entities except Exception as e: err = "列出我创建或加入的团队失败" -- Gitee