namespace IStation.Application
|
{
|
/// <summary>
|
/// AirpSite
|
/// </summary>
|
[Route("SQI/Airp/Site/Std")]
|
[ApiDescriptionSettings("SQI", Name = "空压站(Std)", Order = 89900)]
|
public class AirpSite_StdController : IDynamicApiController
|
{
|
|
|
/// <summary>
|
/// 通过 TenantID 获取
|
/// </summary>
|
[Route("GetByTenantID@V1.0")]
|
[HttpGet]
|
public List<AirpSiteStdDto> 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);
|
Service.AirpSite.PublishCache(cacheKey);
|
var vmList = allList?.Select(x => new AirpSiteStdDto(x)).ToList();
|
return vmList;
|
}, CacheHelper.CacheLevel5);
|
return vm_list;
|
}
|
|
/// <summary>
|
/// 通过 TenantID 获取选择列表
|
/// </summary>
|
[Route("GetSelectListByTenantID@V1.0")]
|
[HttpGet]
|
public List<AirpSiteSelectDto> 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);
|
Service.AirpSite.PublishCache(cacheKey);
|
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;
|
}
|
|
/// <summary>
|
/// 获取逻辑树列表
|
/// </summary>
|
[Route("GetLogicalTreeList@V1.0")]
|
[HttpGet]
|
public List<AirpSiteLogicalTreeDto> 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();
|
Service.Tenant.PublishCache(cacheKey);
|
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();
|
Service.AirpSite.PublishCache(cacheKey);
|
airpSiteList = airpSiteList?.Where(x => x.UseStatus == Yw.Model.eUseStatus.Enable).ToList();
|
if (airpSiteList == null || airpSiteList.Count < 1)
|
{
|
return default;
|
}
|
var vmList = new List<AirpSiteLogicalTreeDto>();
|
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;
|
}
|
|
/// <summary>
|
/// 获取权限逻辑树列表
|
/// </summary>
|
[Route("GetAuthLogicalTreeList@V1.0")]
|
[HttpGet]
|
public List<AirpSiteLogicalTreeDto> 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<AirpSiteLogicalTreeDto>();
|
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;
|
|
}
|
|
|
|
}
|
}
|