public async Task <IActionResult> Get([FromQuery] long id, [FromQuery] long systemid) { ResourceShowViewModel domain = await _resourceService.GetResourceAsync(id, systemid); return(Ok(domain)); }
/// <summary> /// 获取资源信息 /// </summary> /// <param name="id"></param> /// <param name="systemid"></param> /// <returns></returns> public async Task <ResourceShowViewModel> GetResourceAsync(long id, long systemid) { ResourceShowViewModel model = new ResourceShowViewModel(); //获取基本数据 model.SysResource = await _databaseFixture.Db.SysResource.FindByIdAsync(id); if (model.SysResource == null) { model.SysResource = new SysResource() { IsDel = 0, IsShow = 1, Sort = 1 }; } model.ButtonViewModels = new List <ButtonViewModel>(); if (model.SysResource != null) { var dbbuttons = await _databaseFixture.Db.SysResource .FindAllAsync(m => m.ParentId == model.SysResource.ResourceId && m.IsDel == 0 && m.IsButton == 1); //获取所属按钮 var buttons = dbbuttons .Select(m => new { m.ResourceId, m.ResourceName, m.ButtonType }).ToList(); foreach (var item in buttons) { model.ButtonViewModels.Add(new ButtonViewModel() { Id = item.ResourceId, ButtonType = item.ButtonType.Value, ButtonModel = item.ButtonType.Value, Name = item.ResourceName }); } var btntypes = model.ButtonViewModels.Select(m => m.ButtonType).ToList(); //添加未选择的按钮 var btnEnums = Enum <ButtonType> .AsEnumerable().Select(m => (byte)m).ToList(); var pushEnums = btnEnums.Where(m => !btntypes.Contains(m) && m > 0).ToList(); foreach (var item in pushEnums) { model.ButtonViewModels.Add(new ButtonViewModel() { Id = 0, ButtonModel = 0, ButtonType = item, Name = GetButtonName(item) }); } //父节点选择菜单下拉 var dbpmenus = await _databaseFixture.Db.SysResource.FindAllAsync(m => m.ResourceId != model.SysResource.ResourceId && m.IsDel == 0 && m.IsShow == 1 && m.SystemId == systemid); model.ParentMenus = dbpmenus .Select(m => new ZTree() { id = m.ResourceId.ToString(), name = m.ResourceName, pId = m.ParentId, @checked = model.SysResource.ParentId == m.ResourceId }).ToList(); } else { model.SysResource = new SysResource(); model.ButtonViewModels = ButtonInit(); var dbpmenus = await _databaseFixture.Db.SysResource.FindAllAsync(m => m.IsDel == 0 && m.IsShow == 1 && m.SystemId == systemid); model.ParentMenus = dbpmenus .Select(m => new ZTree() { id = m.ResourceId.ToString(), name = m.ResourceName, pId = m.ParentId }).ToList(); } return(model); }