/// <summary> /// 普通用户菜单 /// </summary> /// <param name="request"></param> /// <returns></returns> public IEnumerable <FunctionModel> GetRoleMenu(RoleFunctionFilter request) { //Mapper.CreateMap<SYS_Menu, Menu>(); IEnumerable <FunctionModel> response = null; var menus = Mapper.DynamicMap <IEnumerable <Menu> >(unitOfWork.GetRepository <SYS_Menu>().dbSet.Where(o => !o.IsDeleted && o.RoleID == request.RoleID)).OrderBy(o => o.OrderSeq).ToList(); if (menus.Count <= 0) { return(response); } var menuIds = menus.Select(m => m.MenuID).ToArray(); //获取子菜单 var functions = (from m in unitOfWork.GetRepository <SYS_MenuFunction>().dbSet.Where(o => menuIds.Contains(o.MenuID.Value)) join f in unitOfWork.GetRepository <SYS_Function>().dbSet.Where(o => o.IsIndependent) on m.FunctionID equals f.FunctionID select new FunctionModel { FunctionID = f.FunctionID, FunctionNo = f.FunctionNo, FunctionName = m.MenuName, ModuleName = f.ModuleName, IsIndependent = f.IsIndependent, Url = f.Url, MenuID = m.MenuID.Value, OrderSeq = m.OrderSeq }); foreach (var menu in menus) { response = functions.Where(o => o.MenuID == menu.MenuID).Distinct().OrderBy(o => o.OrderSeq).ToList(); } return(response); }
/// <summary> /// 超级管理菜单 /// </summary> /// <param name="request"></param> /// <returns></returns> public IEnumerable <FunctionModel> GetRoleFunction(RoleFunctionFilter request) { var modules = unitOfWork.GetRepository <SYS_Function>().dbSet.Where(o => o.IsIndependent && !o.IsDeleted).Distinct().OrderBy(o => o.OrderSeq); //Mapper.CreateMap<SYS_Function, FunctionModel>(); //return Mapper.Map<IEnumerable<FunctionModel>>(modules.ToList()); return(Mapper.DynamicMap <IEnumerable <FunctionModel> >(modules.ToList())); }
public IHttpActionResult Query() { var request = new RoleFunctionFilter { RoleID = SecurityHelper.CurrentPrincipal.RoleId, IsSuperAdmin = SecurityHelper.CurrentPrincipal.IsSurperAdmin }; if (SecurityHelper.CurrentPrincipal.IsSurperAdmin) { var response = service.GetRoleFunction(request).ToList(); return(Ok(response)); } else { var response = service.GetRoleMenu(request).ToList(); return(Ok(response)); } }