From c151788f7cb14cb760002fdae86fec699265e2a6 Mon Sep 17 00:00:00 2001 From: Pine Date: Tue, 8 Sep 2026 20:26:28 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=9B=AD=E5=8C=BA=E6=88=90=E5=91=98?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E8=BF=94=E5=9B=9E=E4=BC=81=E4=B8=9A=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=91=98=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/routers/rbac_admin.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/app/api/routers/rbac_admin.py b/app/api/routers/rbac_admin.py index cb93714..07ac695 100644 --- a/app/api/routers/rbac_admin.py +++ b/app/api/routers/rbac_admin.py @@ -632,6 +632,9 @@ async def admin_park_tenant_members( _role: dict = Depends(require_roles("operator")), _perm: dict = Depends(require_permission("menu:admin_user_mgmt")), ): + from ...infrastructure.models import ParkCompany, CompanyMember + from sqlalchemy import select + members = await db.park_members.list_by_park(tid) items = [] for m in members: @@ -643,6 +646,29 @@ async def admin_park_tenant_members( # 成员用户已删除(孤儿引用):显式标记 d["user"] = {"id": m["user_id"], "username": "", "nickname": "", "phone": "", "role": "", "avatar": "", "certification_status": "", "deleted": True} + + # 查询该用户在本园区下是否为企业管理员 + d["company_admin"] = None + try: + cm_rows = (await db.session.execute( + select(CompanyMember, ParkCompany) + .join(ParkCompany, CompanyMember.company_id == ParkCompany.id) + .where( + CompanyMember.user_id == m["user_id"], + ParkCompany.tenant_id == tid, + CompanyMember.status == "active", + ) + )).all() + for cm, pc in cm_rows: + if cm.member_type == "admin" or cm.is_admin: + d["company_admin"] = { + "company_id": pc.id, + "company_name": pc.name, + } + break + except Exception: + pass + items.append(d) return {"items": items}