"""从登录用户上下文解析当前租户编号。""" from sqlalchemy.orm import Session from app.core.config import settings from app.models.models import SysUser def get_tenant_no(db: Session, user: dict) -> str: """优先使用 user 字典中的 tenant_no,否则查 sys_user,最后回退 DEFAULT_TENANT_NO。""" cached = (user.get("tenant_no") or "").strip() if cached: return cached user_id = user.get("user_id") if not user_id: return settings.DEFAULT_TENANT_NO sys_user = db.query(SysUser).filter(SysUser.id == user_id).first() return (sys_user.tenant_no if sys_user and sys_user.tenant_no else None) or settings.DEFAULT_TENANT_NO