19 lines
693 B
Python
19 lines
693 B
Python
"""从登录用户上下文解析当前租户编号。"""
|
|
|
|
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
|