/// <summary> /// 获取菜单权限 待优化代码 /// </summary> /// <param name="menuId"></param> /// <returns></returns> public async Task <MessageModel <List <SysMenuPowerGroupVM> > > GetMenuPowerGroups(string menuId) { if (string.IsNullOrWhiteSpace(menuId)) { return(MessageModel <List <SysMenuPowerGroupVM> > .Fail("未传入菜单ID")); } //查询菜单是否存在 var sysMenu = await _sysMenuRepository.QueryById(menuId); if (sysMenu != null && sysMenu.Status != 2) { //查询菜单的权限组 var sysMenuPowerGroups = await _dal.Query(d => d.SysMenuID == menuId && d.Status == 1); //var resultR=from sysMenuPowersG in sysMenuPowerGroups.sys var arrayPowerGroups = sysMenuPowerGroups.Select(s => s.SysPowerGroupID).ToArray(); var sysPowers = await _sysPowerRepository.Query(d => (arrayPowerGroups).Contains(d.SysPowerGroupID) && d.Status == 1); var returnMenuPowerGroupsVM = new List <SysMenuPowerGroupVM>(); foreach (var item in sysMenuPowerGroups) { //var sysMenuPowerGroupVM = new SysMenuPowerGroupVM(); var sysMenuPowerGroupVM = new SysMenuPowerGroupVM() { ID = item.ID, Status = item.Status, CreateID = item.CreateID, CreateTime = item.CreateTime, Creator = item.Creator, SysMenuID = item.SysMenuID, SysPowerGroupID = item.SysPowerGroupID }; //mapper 有错误,我也不知道为啥 //try //{ // var source = new Source<SysMenuPowerGroup> { Value = item }; // var destination = _mapper.Map<Destination<SysMenuPowerGroupVM>>(source); // sysMenuPowerGroupVM = destination.Value; //} //catch (Exception ex) //{ // throw; //} //sysMenuPowerGroupVM.SysMenu = sysMenu; sysMenuPowerGroupVM.SysPowers = sysPowers.Where(d => d.SysPowerGroupID == item.SysPowerGroupID).ToList(); sysMenuPowerGroupVM.SysPowerGroup = await _sysPowerGroupRepository.QueryById(item.SysPowerGroupID); returnMenuPowerGroupsVM.Add(sysMenuPowerGroupVM); } return(MessageModel <List <SysMenuPowerGroupVM> > .Success(returnMenuPowerGroupsVM)); } return(MessageModel <List <SysMenuPowerGroupVM> > .Fail("菜单已不存在")); }