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; } } }