namespace IStation.Application
{
///
/// Tenant
///
[Route("SQI/Tenant/Std")]
[ApiDescriptionSettings("SQI", Name = "租户(Std)", Order = 99900)]
public class Tenant_StdController : IDynamicApiController
{
///
/// 获取所有
///
[Route("GetAll@V1.0")]
[HttpGet]
public List GetAll()
{
var keyContent = $"SQI_Tenant_Std_GetAll";
var cacheKey = $"{MemoryCacheKeyHelper.GetPrefix(MemoryCacheKey.WebApiLevel, MemoryCacheKey.Module)}_{keyContent}";
var vm_list = MemoryCacheHelper.GetSet(cacheKey, () =>
{
var allList = new Service.Tenant().GetAll();
Service.Tenant.PublishCache(cacheKey);
var vmList = allList?.Select(x => new TenantStdDto(x)).ToList();
return vmList;
}, CacheHelper.CacheLevel5);
return vm_list;
}
///
/// 获取选择列表
///
[Route("GetSelectList@V1.0")]
[HttpGet]
public List GetSelectList()
{
var keyContent = $"SQI_Tenant_Std_GetSelectList";
var cacheKey = $"{MemoryCacheKeyHelper.GetPrefix(MemoryCacheKey.WebApiLevel, MemoryCacheKey.Module)}_{keyContent}";
var vm_list = MemoryCacheHelper.GetSet(cacheKey, () =>
{
var allList = new Service.Tenant().GetAll();
Service.Tenant.PublishCache(cacheKey);
allList = allList?.Where(x => x.UseStatus == Yw.Model.eUseStatus.Enable).ToList();
var vmList = allList?.Select(x => new TenantSelectDto(x)).ToList();
return vmList;
}, CacheHelper.CacheLevel5);
return vm_list;
}
///
/// 获取权限选择列表
///
[Route("GetAuthSelectList@V1.0")]
[HttpGet]
public List GetAuthSelectList()
{
var userId = UserManager.UserID;
var adminType = (Yw.Model.eAdminType)UserManager.AdminType;
var allList = new Service.Tenant().GetAll();
if (allList == null || allList.Count < 1)
{
return default;
}
allList = allList.Where(x => x.UseStatus == Yw.Model.eUseStatus.Enable).ToList();
if (allList.Count < 1)
{
return default;
}
if (adminType > Yw.Model.eAdminType.Normal)
{
return allList.Select(x => new TenantSelectDto(x)).ToList();
}
var allMappingList = new Service.TenantUserMapping().GetByUserID(userId);
if (allMappingList == null || allMappingList.Count < 1)
{
return default;
}
var tenantIds = allMappingList.Select(x => x.TenantID).Distinct().ToList();
allList = allList.Where(x => tenantIds.Contains(x.ID)).ToList();
var vmList = allList.Select(x => new TenantSelectDto(x)).ToList();
return vmList;
}
}
}