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); Service.AirpSite.PublishCache(cacheKey); 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); 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; } /// /// 获取逻辑树列表 /// [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(); 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(); 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; } } }