/// <summary> /// 根据地址获取模块ID /// </summary> /// <param name="path"></param> /// <returns></returns> public int GetModuleIdByPage(string path) { var moduleID = 0; if (ModuleInfos == null || DisplayModuleInfo == null) { return(moduleID); } var entity = new BfModuleInfo(); foreach (var module in DisplayModuleInfo) { if (module.Items == null) { continue; } entity = module.Items.FindLast(a => a.URL == path.Trim('~')); if (entity != null && entity.ID > 0) { break; } } if (entity != null && entity.ID > 0) { var info = ModuleInfos.FindLast(a => a.MODULE_CODE == entity.CODE); if (info != null && info.SystemID.GetValueOrDefault() > 0) { moduleID = info.SystemID.GetValueOrDefault(); } } return(moduleID); }
/// <summary> /// 获取需要展示的菜单 /// </summary> /// <param name="allMenuTree">全部菜单</param> /// <returns></returns> private List <BfModuleInfo> GetDisplayMenuItem(List <BfModuleInfo> allMenuTree) { if (allMenuTree == null || allMenuTree.Count == 0) { return(new List <BfModuleInfo>()); } var displayMenu = new List <BfModuleInfo>(); foreach (var menuTree in allMenuTree) { //判断父节点是否有不需要权限控制的,如果有,则展示该父节点所有节点 if (!menuTree.IsNeedControl) { displayMenu.Add(menuTree); continue; } //如果子节点有不需要权限控制的,将该子节点的父节点和该子节点一起展示 //如果有该子节点访问权限,将该子节点的父节点和该子节点一起展示 if (menuTree.Items != null) { foreach (var nodeTree in menuTree.Items) { if (!nodeTree.IsNeedControl || UserSession.Current.ModuleInfos.Exists(p => p.MODULE_CODE == nodeTree.CODE)) { //添加父节点 if (!displayMenu.Exists(p => p.ID == menuTree.ID)) { var menu = new BfModuleInfo(); menu.ID = menuTree.ID; menu.IsNeedControl = menuTree.IsNeedControl; menu.NAME = menuTree.NAME; menu.ICON = menuTree.ICON; menu.CODE = menuTree.CODE; menu.ORDER = menuTree.ORDER; menu.URL = menuTree.URL; menu.PARENT_ID = menuTree.PARENT_ID; displayMenu.Add(menu); } //添加子节点 var parentMenu = displayMenu.FirstOrDefault(p => p.ID == menuTree.ID); if (parentMenu.Items == null || !parentMenu.Items.Exists(p => p.ID == nodeTree.ID)) { if (parentMenu.Items == null) { parentMenu.Items = new List <BfModuleInfo>(); } parentMenu.Items.Add(nodeTree); } } } } } UserSession.Current.DisplayModuleInfo = displayMenu; return(displayMenu); }
/// <summary> /// 保存模块 /// </summary> /// <returns></returns> public JsonResult SetBfModule(BfModuleInfo moduleInfo, string operations, string otherOperCodes, string otherOperNames, string otherOperIds) { try { moduleInfo.LAST_MODIFIED_TIME = DateTime.Now; moduleInfo.LAST_MODIFIED_USER = UserSession.Current.UserID; if (moduleInfo.PARENT_ID == null) { moduleInfo.PARENT_ID = 0; } var tmpOperationList = operations.Split(','); var tmpOtherOperationCodeList = otherOperCodes.Split(','); var tmpOtherOperationNameList = otherOperNames.Split(','); var tmpOtherId = otherOperIds.Split(','); if (!string.IsNullOrEmpty(operations)) { var operationList = tmpOperationList.Select((t, i) => new BfModuleOperationInfo() { BF_MODULE_ID = moduleInfo.ID, CODE = t }).ToList(); moduleInfo.OperationItems = operationList; } if (!string.IsNullOrEmpty(otherOperIds)) { var otherOperationList = tmpOtherOperationCodeList.Select((t, i) => new BfModuleOtherOperationInfo() { BF_MODULE_ID = moduleInfo.ID, CODE = t, NAME = tmpOtherOperationNameList[i], ID = Convert.ToInt32(tmpOtherId[i]) }).ToList(); moduleInfo.OtherOperationItems = otherOperationList; } if (moduleInfo.ID > 0) { var result = (new BfModuleManager()).Update(moduleInfo); //更新moduleInfo的缓存信息 MemuTree.Instance.RefreshModuleInfo(); LogHelper.Info( this.GetType(), string.Format("用户[{0}]更新模块Code={1}", UserSession.Current.UserCode, moduleInfo.CODE)); if (result) { return(Json(new ResponseMessage() { IsSuccess = true })); } return(Json(new ResponseMessage() { IsSuccess = false, ErrorCode = 0, Message = "修改失败" })); } else { moduleInfo.CREATE_USER = UserSession.Current.UserID; moduleInfo.CREATE_DATE = System.DateTime.Now; var result = (new BfModuleManager()).Add(moduleInfo); //更新moduleInfo的缓存信息 MemuTree.Instance.RefreshModuleInfo(); LogHelper.Info( this.GetType(), string.Format("用户[{0}]添加模块Code={1}", UserSession.Current.UserCode, moduleInfo.CODE)); if (result > 0) { return(Json(new ResponseMessage() { IsSuccess = true })); } return(Json(new ResponseMessage() { IsSuccess = false, ErrorCode = (int)result, Message = "添加失败" })); } } catch { return(null); } }