namespace IStation.Application
{
///
/// AirpSite
///
[Route("SQI/Airp/Site/Std")]
[ApiDescriptionSettings("SQI", Name = "空压站(Std)", Order = 89900)]
public class AirpSite_StdController : IDynamicApiController
{
///
/// 通过 TenantID 获取
///
[Route("GetByTenantID@V1.0")]
[HttpGet]
public List GetByTenantID([FromQuery][Required] TenantIDInput input)
{
var tenantId = input.TenantID;
var keyContent = $"SQI_Airp_Site_Std_GetByTenantID_{tenantId}";
var cacheKey = $"{MemoryCacheKeyHelper.GetPrefix(MemoryCacheKey.WebApiLevel, MemoryCacheKey.Module)}_{keyContent}";
var vm_list = MemoryCacheHelper.GetSet(cacheKey, () =>
{
var allList = new Service.AirpSite().GetByTenantID(tenantId);
var vmList = allList?.Select(x => new AirpSiteStdDto(x)).ToList();
return vmList;
}, CacheHelper.CacheLevel5);
return vm_list;
}
///
/// 通过 TenantID 获取选择列表
///
[Route("GetSelectListByTenantID@V1.0")]
[HttpGet]
public List GetSelectListByTenantID([FromQuery][Required] TenantIDInput input)
{
var tenantId = input.TenantID;
var keyContent = $"SQI_Airp_Site_Std_GetSelectListByTenantID_{tenantId}";
var cacheKey = $"{MemoryCacheKeyHelper.GetPrefix(MemoryCacheKey.WebApiLevel, MemoryCacheKey.Module)}_{keyContent}";
var vm_list = MemoryCacheHelper.GetSet(cacheKey, () =>
{
var allList = new Service.AirpSite().GetByTenantID(tenantId);
allList = allList?.Where(x => x.UseStatus == Yw.Model.eUseStatus.Enable).ToList();
var vmList = allList?.Select(x => new AirpSiteSelectDto(x)).ToList();
return vmList;
}, CacheHelper.CacheLevel5);
return vm_list;
}
///
/// 获取逻辑树列表
///
[Route("GetLogicalTreeList@V1.0")]
[HttpGet]
public List GetLogicalTreeList()
{
var keyContent = $"SQI_Airp_Site_Std_GetLogicalTreeList";
var cacheKey = $"{MemoryCacheKeyHelper.GetPrefix(MemoryCacheKey.WebApiLevel, MemoryCacheKey.Module)}_{keyContent}";
var vm_list = MemoryCacheHelper.GetSet(cacheKey, () =>
{
var tenantList = new Service.Tenant().GetAll();
tenantList = tenantList?.Where(x => x.UseStatus == Yw.Model.eUseStatus.Enable).ToList();
if (tenantList == null || tenantList.Count < 1)
{
return default;
}
var airpSiteList = new Service.AirpSite().GetAll();
airpSiteList = airpSiteList?.Where(x => x.UseStatus == Yw.Model.eUseStatus.Enable).ToList();
if (airpSiteList == null || airpSiteList.Count < 1)
{
return default;
}
var vmList = new List();
foreach (var tenant in tenantList)
{
var list = airpSiteList.Where(x => x.TenantID == tenant.ID).OrderBy(x => x.SortCode).ToList();
if (list == null || list.Count < 1)
{
continue;
}
var vm = new AirpSiteLogicalTreeDto(tenant, list);
vmList.Add(vm);
}
return vmList;
}, CacheHelper.CacheLevel5);
return vm_list;
}
///
/// 获取权限逻辑树列表
///
[Route("GetAuthLogicalTreeList@V1.0")]
[HttpGet]
public List GetAuthLogicalTreeList()
{
var userId = UserManager.UserID;
var adminType = (Yw.Model.eAdminType)UserManager.AdminType;
var allTenantList = new Service.Tenant().GetAll();
allTenantList = allTenantList?.Where(x => x.UseStatus == Yw.Model.eUseStatus.Enable).ToList();
if (allTenantList == null || allTenantList.Count < 1)
{
return default;
}
var allSiteList = new Service.AirpSite().GetAll();
allSiteList = allSiteList?.Where(x => x.UseStatus == Yw.Model.eUseStatus.Enable).ToList();
if (allSiteList == null || allSiteList.Count < 1)
{
return default;
}
var vmList = new List();
if (adminType > Yw.Model.eAdminType.Normal)
{
foreach (var tenant in allTenantList)
{
var list = allSiteList.Where(x => x.TenantID == tenant.ID).OrderBy(x => x.SortCode).ToList();
if (list == null || list.Count < 1)
{
continue;
}
var vm = new AirpSiteLogicalTreeDto(tenant, list);
vmList.Add(vm);
}
}
else
{
var allMappingList = new Service.TenantUserMapping().GetByUserID(userId);
if (allMappingList != null && allMappingList.Count > 0)
{
var tenantIds = allMappingList.Select(x => x.TenantID).Distinct().ToList();
allTenantList = allTenantList.Where(x => tenantIds.Contains(x.ID)).ToList();
if (allTenantList != null && allTenantList.Count > 0)
{
foreach (var tenant in allTenantList)
{
var list = allSiteList.Where(x => x.TenantID == tenant.ID).OrderBy(x => x.SortCode).ToList();
if (list == null || list.Count < 1)
{
continue;
}
var vm = new AirpSiteLogicalTreeDto(tenant, list);
vmList.Add(vm);
}
}
}
}
return vmList;
}
}
}