namespace Admin.NET.Plugin.AiDOP.Infrastructure;
///
/// WP0-D4:qms_* 表 tenant_id 解析(优先入参,其次登录 JWT;无有效租户则抛异常,与 对齐)。
///
public static class QmsTenantScope
{
/// 框架默认租户哨兵(仅作常量引用,不作为业务数据归属)。
public const long DefaultTenantId = 1300000000001L;
public static long Resolve(long? inputTenantId, long? userTenantId = null)
{
if (inputTenantId is > 0) return inputTenantId.Value;
if (userTenantId is > 0) return userTenantId.Value;
throw Oops.Oh("无法确定当前租户,请重新登录或选择目标租户");
}
/// 从当前请求 UserManager 解析租户;无有效租户则抛异常。
public static long Current()
{
var um = App.GetRequiredService();
return Resolve(null, um.TenantId);
}
/// 优先使用显式入参租户;无效则抛异常。
public static long Current(long inputTenantId) => Resolve(inputTenantId, null);
}