using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using CY.BLL; using CY.Model; using CY.Infrastructure.Common; using System.Data; namespace CY.WebForm.Pages.membermanage { //吴辉 //会员权限 public partial class MemberRole : BasePage { Sys_Permissions_UserCaseBLL bll_Sys_Permissions_UserCaseBLL = null; Sys_Permissions_MenuBLL bll_Sys_Permissions_MenuBLL = null; Sys_Permissions_RoleBLL bll_Sys_Permissions_RoleBLL = null; public static string treeHtml = ""; //树形参数 public static string selHtml = ""; //下拉框内容 public static string MemberRoleString = ""; //实例化 public MemberRole() { bll_Sys_Permissions_UserCaseBLL = new Sys_Permissions_UserCaseBLL(); bll_Sys_Permissions_MenuBLL = new Sys_Permissions_MenuBLL(); bll_Sys_Permissions_RoleBLL = new Sys_Permissions_RoleBLL(); } //页面加载 protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { InitialData(); } if (Request["delete"] != null && Request["delete"].ToInt32() > 0) { Sys_Permissions_Role model = bll_Sys_Permissions_RoleBLL.SelectModel(Request["delete"].ToInt32()); if (model != null && model.Keyid > 0) { if (bll_Sys_Permissions_RoleBLL.DeleteModel(model)) JavaScript.MessageBox("删除成功", this); else JavaScript.MessageBox("删除失败", this); InitialData(); } } } //提交修改 hideKeyId protected void btn_Submit_Config(object sender, EventArgs e) { try { Sys_Permissions_UserRoleRelation m_Sys_Permissions_UserRoleRelation = bll_Sys_Permissions_RoleBLL.SelectSys_Permissions_UserRoleRelation(Request["MemberId"].ToGuid2()); string Roles = Request["hideRoles"].ToString2(); string[] RolesArry = Roles.Split(','); Dictionary MenusJionRole = new Dictionary(); foreach (var itemRole in RolesArry) { string MenuAll = itemRole; string[] MenuAllArry = MenuAll.Split('+'); if (MenuAllArry.Length > 1) { string value_Role = MenuAllArry[1] == "0" ? "" : MenuAllArry[1]; if (MenusJionRole.Keys.Contains(MenuAllArry[0])) MenusJionRole[MenuAllArry[0]] = MenusJionRole[MenuAllArry[0]] + "," + value_Role; else MenusJionRole.Add(MenuAllArry[0], value_Role); } } bool result = bll_Sys_Permissions_RoleBLL.EditMenusRole(m_Sys_Permissions_UserRoleRelation == null ? 0 : m_Sys_Permissions_UserRoleRelation.RoleId, MenusJionRole, Request["MemberId"].ToGuid2()); if (result) { InitialData(); JavaScript.MessageBox("保存成功", this); } else JavaScript.MessageBox("操作失败", this); } catch (Exception ex) { PAGEHandleException(ex); JavaScript.MessageBox("操作失败", this); } } //获取遍历结果 public void InitialData() { DataTable ds = bll_Sys_Permissions_MenuBLL.SelectAllUsedList(); treeHtml = ""; selHtml = ""; int? MenuOneId = 0; if (ds != null && ds.Rows.Count > 0) { GetDataByLevel(ref treeHtml, ref selHtml, ref MenuOneId, ds, 0, 1); } treeHtml = treeHtml.Trim(','); MemberRoleString = GetMenusByMemberRole(); } //遍历菜单以及用例数据 public void GetDataByLevel(ref string treeHtmlo, ref string selHtmlo, ref int? MenuOneId, DataTable data, int parentId, int level) { DataRow[] result = data.Select(string.Format("ParentId={0}", parentId)); int i = -1; int j = -1; while (++i < result.Length) { if (result[i]["MenuName"].ToString2() == "管理员菜单") { return; } if (level == 2) { MenuOneId = result[i]["Keyid"].ToInt32(); } treeHtmlo = treeHtmlo + "{GetMenuRoleId:'0', id: " + result[i]["Keyid"].ToString2() + ", parentId: " + result[i]["ParentId"].ToString2() + ", name: '" + result[i]["MenuName"].ToString2() + "[" + result[i]["Keyid"].ToString2() + "]" + "'" + (level < 3 ? ", open: true" : "") + " },"; if (level == 4) { treeHtmlo = treeHtmlo + "{GetMenuRoleId:'" + MenuOneId + "-" + result[i]["ParentId"].ToString2() + "-" + result[i]["Keyid"].ToString2() + "+0', id: " + result[i]["ParentId"].ToString2() + "00" + result[i]["Keyid"].ToString2() + ", parentId: " + result[i]["Keyid"].ToString2() + ", name: '查看页面' },"; DataTable ds = bll_Sys_Permissions_UserCaseBLL.SelectList(result[i]["Keyid"].ToInt32()); DataRow[] resultUserCase = ds.Select(string.Format("MenuId={0}", result[i]["Keyid"].ToInt32())); while (++j < resultUserCase.Length) { treeHtmlo = treeHtmlo + "{GetMenuRoleId:'" + MenuOneId + "-" + result[i]["ParentId"].ToString2() + "-" + result[i]["Keyid"].ToString2() + "+" + resultUserCase[j]["Keyid"].ToString2() + "', id: 333" + resultUserCase[j]["Keyid"].ToString2() + ", parentId: " + resultUserCase[j]["MenuId"].ToString2() + ", name: '" + resultUserCase[j]["UserCaseName"].ToString2() + "'},"; } j = -1; } GetDataByLevel(ref treeHtmlo, ref selHtmlo, ref MenuOneId, data, result[i]["Keyid"].ToInt32().Value, level + 1); } } /// /// 获取会员权限 /// /// /// public string GetMenusByMemberRole() { Sys_Permissions_UserRoleRelation m_Sys_Permissions_UserRoleRelation = bll_Sys_Permissions_RoleBLL.SelectSys_Permissions_UserRoleRelation(Request["MemberId"].ToGuid2()); if (m_Sys_Permissions_UserRoleRelation != null) { List m_Sys_Permissions_RoleMenuRelationList = bll_Sys_Permissions_RoleBLL.SelectListByRoleId(m_Sys_Permissions_UserRoleRelation.RoleId) as List; if (m_Sys_Permissions_RoleMenuRelationList != null && m_Sys_Permissions_RoleMenuRelationList.Count > 0) { List Menus = new List(); foreach (var m_Sys_Permissions_Menu in m_Sys_Permissions_RoleMenuRelationList) { Menus.Add(m_Sys_Permissions_Menu.MenuIdOne + "-" + m_Sys_Permissions_Menu.MenuIdTwo + "-" + m_Sys_Permissions_Menu.MenuIdThree + "+" + "0"); string[] fucns = m_Sys_Permissions_Menu.FuncId.Split(','); foreach (var item in fucns) { Menus.Add(m_Sys_Permissions_Menu.MenuIdOne + "-" + m_Sys_Permissions_Menu.MenuIdTwo + "-" + m_Sys_Permissions_Menu.MenuIdThree + "+" + item); } } return JsonHelper.GetJsonStringByObject(Menus); } else return ""; } else return ""; } } }