예제 #1
0
        /// <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);
        }
예제 #2
0
        /// <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);
        }
예제 #3
0
        /// <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);
            }
        }