tenant_context.py 693 B

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