/// <summary> /// 获取用户菜单HTML /// </summary> /// <param name="userID">用户ID</param> /// <returns></returns> public string GetNewUserMenuTreeHtml(string userId, string websiteOwner) { StringBuilder sb = new StringBuilder(); try { UserInfo curUser = BaseCacheGetUserInfo(userId); int ShowLevel = 3; if (curUser.UserType == 1) { ShowLevel = 1; } else if (curUser.UserID == websiteOwner) { ShowLevel = 2; } BLLMenuInfo bllMenu = new BLLMenuInfo(); List <MenuInfo> list = bllMenu.GetWebsiteMenuList(websiteOwner, ShowLevel, false, true); string relationIds = "''"; List <long> pmsGroupIdList = GetPmsGroupIDByUser(websiteOwner); if (pmsGroupIdList.Count > 0) { relationIds = MyStringHelper.ListToStr(pmsGroupIdList, "'", ","); } list = bllMenu.CheckMenuRelationList(list, websiteOwner, relationIds); list = bllMenu.CheckUserMenuShowLevelList(list, ShowLevel); list = list.Where(p => p.IsHide.Value == 0).ToList(); List <MenuInfo> menuList = new List <MenuInfo>(); menuList = list; int index = 0; foreach (MenuInfo item in menuList.Where(p => p.PreID == 0)) { //sb.AppendFormat("<li class=\"{0}\">", index > 0 ? "" : "active"); sb.AppendFormat("<li class=\"{0}\">", index > 0 ? "" : "");//默认不展开任何菜单 sb.AppendFormat("<a href=\"javascript:;\"><i class=\"{1}\"></i> <span class=\"nav-label\">{0}</span><span class=\"fa arrow\"></span></a>", item.NodeName, item.ICOCSS); sb.AppendFormat(GetNewSingelTreeHtml(item, menuList)); sb.AppendFormat("</li>"); index++; } } catch (Exception ex) { throw ex; } return(sb.ToString()); }
/// <summary> /// 检查栏目权限返回菜单 /// </summary> /// <returns></returns> public List <MenuInfo> CheckPermissionColumnList(List <MenuInfo> list, string websiteOwner, UserInfo curUser) { List <MenuInfo> result = new List <MenuInfo>(); if (list.Count == 0) { return(result); } string relationIds = "''"; List <long> pmsGroupIdList = GetPmsGroupIDByUser(curUser.UserID); List <PermissionRelationInfo> rel_column_list = new List <PermissionRelationInfo>(); List <PermissionColumn> column_list = new List <PermissionColumn>(); BLLPermission bllPermission = new BLLPermission(); string columnRelationIds = "0"; if (pmsGroupIdList.Count > 0) { relationIds = MyStringHelper.ListToStr(pmsGroupIdList, "'", ","); rel_column_list = bllPermission.GetMultPermissionRelationList(relationIds, 3); if (rel_column_list.Count > 0) { columnRelationIds = MyStringHelper.ListToStr(rel_column_list.Select(p => p.PermissionID).ToList(), "", ","); column_list = bllPermission.GetMultListByKey <PermissionColumn>("PermissionColumnID", columnRelationIds); } } if (!string.IsNullOrWhiteSpace(websiteOwner) && curUser.UserID == websiteOwner) { List <PermissionColumn> column_list1 = bllPermission.GetListByKey <PermissionColumn>("WebsiteOwner", websiteOwner); column_list.AddRange(column_list1); } if (column_list.Count == 0) { return(result); } List <long> columnId_list = column_list.Select(p => p.PermissionColumnID).ToList(); List <long> columnId_list1 = column_list.Where(p => p.PermissionColumnBaseID > 0).Select(p => p.PermissionColumnBaseID).ToList(); columnId_list.AddRange(columnId_list1); string columnRelationIdStrs = MyStringHelper.ListToStr(columnId_list, "'", ","); BLLMenuInfo bllMenu = new BLLMenuInfo(); List <MenuRelationInfo> column_menu_list = bllMenu.GetMenuRelationListByRelationIds(columnRelationIdStrs, 5); if (column_menu_list.Count == 0) { return(result); } List <long> menuId_list = column_menu_list.Select(p => p.MenuID).ToList(); result = list.Where(p => menuId_list.Contains(p.MenuID)).ToList(); return(result); }
/// <summary> /// 获取用户菜单HTML /// </summary> /// <param name="userId">账号</param> /// <param name="websiteOwner">所有者</param> /// <returns></returns> public string GetNewUserMenuTreeHtmlV2(string userId, string websiteOwner) { StringBuilder sbMenu = new StringBuilder(); try { UserInfo userInfo = BaseCacheGetUserInfo(userId); int showLevel = 3; if (userInfo.UserType == 1) { showLevel = 1; } else if (userInfo.UserID == websiteOwner) { showLevel = 2; } BLLMenuInfo bllMenu = new BLLMenuInfo(); List <MenuInfo> list = bllMenu.GetWebsiteMenuList(websiteOwner, 1, false, true); list = bllMenu.NewCheckMenuRelationList(list, websiteOwner); list = bllMenu.CheckUserMenuShowLevelList(list, showLevel); list = list.Where(p => p.IsHide.Value == 0).ToList(); if (userInfo.UserType != 1) { list = CheckPermissionColumnList(list, websiteOwner, userInfo); } List <MenuInfo> menuList = new List <MenuInfo>(); menuList = list; int index = 0; foreach (MenuInfo item in menuList.Where(p => p.PreID == 0)) { //sbMenu.AppendFormat("<li class=\"{0}\">", index > 0 ? "" : "active"); sbMenu.AppendFormat("<li class=\"{0}\">", index > 0 ? "" : "");//默认不展开任何菜单 sbMenu.AppendFormat("<a href=\"javascript:;\"><i class=\"{1}\"></i> <span class=\"nav-label\">{0}</span><span class=\"fa arrow\"></span></a>", item.NodeName, item.ICOCSS); sbMenu.AppendFormat(GetNewSingelTreeHtml(item, menuList)); sbMenu.AppendFormat("</li>"); index++; } } catch (Exception ex) { throw ex; } return(sbMenu.ToString()); }