示例#1
0
        /// <summary>
        /// 获取菜单列表,递归生成树名称和调整菜单位置
        /// </summary>
        private void GetMenuList(ref List <SysMenuEntity> listMain, ref int position,
                                 List <SysMenuEntity> listCurrentLevel = null, string skipLevel = "")
        {
            if (listMain == null || listMain.Count <= 0)
            {
                return;
            }

            if (listCurrentLevel == null)
            {
                listCurrentLevel = listMain.Where <SysMenuEntity>(n => n.MenuLevel == 1).ToList();
            }

            const string sign = "- ";

            if (listCurrentLevel.Count > 0)
            {
                for (int i = 0; i < listCurrentLevel.Count; i++)
                {
                    SysMenuEntity entity = listCurrentLevel[i];

                    //生成树名称
                    string treeName = string.Empty;
                    for (int j = 0; j < entity.MenuLevel; j++)
                    {
                        treeName += sign;
                    }

                    int index = listMain.IndexOf(entity);
                    entity.MenuTreeName = treeName + entity.MenuName;

                    //调整菜单位置
                    if (index == position)
                    {
                        listMain[position] = entity;
                    }
                    else
                    {
                        var temp = listMain[position];
                        listMain[position] = entity;
                        listMain[index]    = temp;
                    }

                    //当父节点的最后的节点有子菜单,则该节点不需要添加竖线
                    if (entity.Seq == listCurrentLevel.Count)
                    {
                        skipLevel += entity.MenuLevel.ToString();
                    }

                    //标识当前节点的位置
                    position++;

                    List <SysMenuEntity> listSubMenu = listMain.Where(n => n.FatherNode == entity.MenuId).ToList();
                    if (listSubMenu.Count > 0)
                    {
                        GetMenuList(ref listMain, ref position, listSubMenu, skipLevel);
                    }
                }
            }
        }
示例#2
0
        public int UpdateMenuFun(SysMenuEntity model, List <SysMenuFunctionEntity> listModel)
        {
            bool resulte = SqlHelper.ExecuteTranSql((con, tran) =>
            {
                int r = 0;
                try
                {
                    StringBuilder strsql = new StringBuilder();
                    strsql.Append("update sys_menu set  ");
                    strsql.Append("menucode=@menucode,parentcode=@parentcode,menuname=@menuname,menuurl=@menuurl,menuicon=@menuicon,menuseq=@menuseq,isvisible=@isvisible,isenable=@isenable,menulevel=@menulevel,createby=@createby,createdate=@createdate,remark=@remark");
                    strsql.Append(" where id=@id ");
                    r = SqlHelper.ExecuteCon(strsql.ToString(), model, tran, null, CommandType.Text, con);

                    if (listModel != null && listModel.Count > 0)
                    {
                        string sqlfun           = "delete from  sys_menufunction where menucode=@Menucode";
                        r                       = SqlHelper.ExecuteCon(sqlfun.ToString(), new { Menucode = model.Menucode }, tran, null, CommandType.Text, con);
                        StringBuilder strsqlfun = new StringBuilder();
                        strsqlfun.Append("insert into sys_menufunction(menucode,funcode) ");
                        strsqlfun.Append(" values(@menucode,@funcode)");
                        r = SqlHelper.ExecuteCon(strsqlfun.ToString(), listModel, tran, null, CommandType.Text, con);
                    }
                }
                catch (Exception ex)
                {
                    Log4NetHelper.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType).Debug(ex.Message);
                    r = 0;
                }

                return(r);
            });

            return(resulte ? 1 : 0);
        }
示例#3
0
        public int Insert(SysMenuEntity model)
        {
            StringBuilder strsql = new StringBuilder();

            strsql.Append("insert into sys_menu(menucode,parentcode,menuname,menuurl,menuicon,menuseq,isvisible,isenable,menulevel,createby,createdate,remark) ");
            strsql.Append(" values(@menucode,@parentcode,@menuname,@menuurl,@menuicon,@menuseq,@isvisible,@isenable,@menulevel,@createby,@createdate,@remark)");
            return(SqlHelper.Execute(strsql.ToString(), model));
        }
示例#4
0
        public int Update(SysMenuEntity model)
        {
            StringBuilder strsql = new StringBuilder();

            strsql.Append("update sys_menu set  ");
            strsql.Append("menucode=@menucode,parentcode=@parentcode,menuname=@menuname,menuurl=@menuurl,menuicon=@menuicon,menuseq=@menuseq,isvisible=@isvisible,isenable=@isenable,menulevel=@menulevel,createby=@createby,createdate=@createdate,remark=@remark");
            strsql.Append(" where id=@id ");
            return(SqlHelper.Execute(strsql.ToString(), model));
        }
示例#5
0
        /// <summary>
        ///创建菜单
        /// </summary>
        /// <returns></returns>
        public ActionResult CreateMenu()
        {
            SysPower(SysMenuConstant.MENU_MANAGE, SysMenuConstant.FUN_ADD, UserInfo.UserCode);
            var model = new SysMenuEntity();

            ViewBag.FunList = ISysFunctionService.Query(string.Empty);
            model.Isvisible = false;
            model.Isenable  = true;
            #region 增加是自动获取菜单代码和序列号
            string strwhere = string.Empty;

            Hashtable hs         = ISysMenuService.GetMaxPartMenu(RequestHelper.FilterParam(Request.QueryString["code"]));
            string    parentCode = "";
            int       menseq     = 0;
            if (hs.Count > 0)
            {
                parentCode = hs["MenuCode"].ToString();
                menseq     = Convert.ToInt32(hs["MenuSeq"]);
            }
            string code     = RequestHelper.GetQueryValueOrNull <string>("code");
            string currcode = "";
            if (parentCode == "")
            {
                if (string.IsNullOrEmpty(code))//表示顶级菜单
                {
                    currcode = "101";
                }
                else
                {
                    currcode = Request.QueryString["code"].ToString() + "001";
                }
                menseq = 1;
            }
            else
            {
                if (string.IsNullOrEmpty(code))//表示顶级菜单
                {
                    currcode = Convert.ToString(Convert.ToInt32(parentCode) + 1);
                    menseq   = 1;
                }
                else
                {
                    currcode = code + Convert.ToString(Convert.ToInt32(parentCode.Substring(parentCode.Length - 3)) + 1).PadLeft(3, '0');
                    menseq++;
                }
            }
            model.Menucode   = currcode;
            model.Menuseq    = menseq;
            model.Parentcode = code;
            #endregion
            return(View("EditMenu", model));
        }
示例#6
0
        public ExcuteResultEnum DeleteSysMenu(int menuId)
        {
            if (GetCountByFatherNode(menuId) > 0)
            {
                return(ExcuteResultEnum.IsOccupied);
            }

            SysMenuEntity entity = new SysMenuEntity()
            {
                MenuId = menuId, DeleteFlag = true
            };

            entity.Update();
            return(ExcuteResultEnum.Success);
        }
示例#7
0
 public void AddNewSysMenu(SysMenuEntity entity)
 {
     //获取目标目录下菜单的数量
     if (entity.FatherNode == 0)
     {
         entity.MenuLevel = 1;
     }
     else
     {
         SysMenuEntity fatherNode = GetSysMenuEntity(entity.FatherNode);
         entity.MenuLevel = fatherNode.MenuLevel + 1;
     }
     entity.MenuId     = null;
     entity.Seq        = GetCountByFatherNode(entity.FatherNode) + 1;
     entity.DeleteFlag = false;
     entity.Insert();
 }
示例#8
0
        private SysMenuEntity PrepareFormData()
        {
            //校验参数的合法性
            txtMenuName.Text.InitValidation("菜单名称").NotEmpty().ShorterThan(25);
            txtMenuDescription.Text.InitValidation("菜单说明").ShorterThan(250);
            txtUrlParameter.Text.InitValidation("菜单参数").ShorterThan(250);

            var entity = new SysMenuEntity();

            entity.MenuId       = int.Parse(hdMenuId.Value);
            entity.MenuName     = txtMenuName.Text;
            entity.FatherNode   = int.Parse(ddlMenuTree.SelectedValue);
            entity.Description  = txtMenuDescription.Text;
            entity.UrlParameter = txtUrlParameter.Text;
            entity.PageUrl      = ddlPageUrl.Items.Count > 0 ? ddlPageUrl.SelectedItem.Text : string.Empty;
            entity.ActivityFlag = cbMenuStatus.Checked;
            return(entity);
        }
示例#9
0
 public void UpdateSysMenu(SysMenuEntity entity, int orgFatherNode)
 {
     if (entity.FatherNode != orgFatherNode)
     {
         if (entity.FatherNode == 0)
         {
             entity.MenuLevel = 1;
         }
         else
         {
             SysMenuEntity fatherNode = GetSysMenuEntity(entity.FatherNode);
             entity.MenuLevel = fatherNode.MenuLevel + 1;
         }
         entity.Seq = GetCountByFatherNode(entity.FatherNode) + 1;
     }
     entity.Update();
     if (entity.FatherNode != orgFatherNode)
     {
         SeqRecal();
     }
 }
示例#10
0
        /// <summary>
        /// 获取菜单树,递归生成树结构
        /// </summary>
        private void GetMenuTree(ref List <SysMenuEntity> listMain, List <SysMenuEntity> listCurrentLevel = null)
        {
            if (listMain == null || listMain.Count <= 0)
            {
                return;
            }

            if (listCurrentLevel == null)
            {
                listCurrentLevel = listMain.Where <SysMenuEntity>(n => n.MenuLevel == 1).ToList();
            }

            if (listCurrentLevel.Count > 0)
            {
                for (int i = 0; i < listCurrentLevel.Count; i++)
                {
                    SysMenuEntity        e           = listCurrentLevel[i];
                    List <SysMenuEntity> listSubMenu = listMain.Where(n => n.FatherNode == e.MenuId).ToList();
                    if (listSubMenu.Count > 0)
                    {
                        GetMenuTree(ref listMain, listSubMenu);
                    }

                    //生成树结构,把当前节点加入到上层节点的子节点中。
                    if (e.MenuLevel > 1)
                    {
                        SysMenuEntity fatherNode = listMain.Where(n => n.MenuId == e.FatherNode).ToList()[0];
                        int           index      = listMain.IndexOf(fatherNode);
                        if (listMain[index].SubMenuList == null)
                        {
                            listMain[index].SubMenuList = new List <SysMenuEntity>();
                        }
                        listMain[index].SubMenuList.Add(e);
                        listMain.Remove(listMain[listMain.IndexOf(e)]);
                    }
                }
            }
        }
示例#11
0
        public ActionResult SaveMenu(SysMenuEntity model)
        {
            var menuname = StringHelper.GetStrLength(model.Menuname);

            if (menuname == 0 || menuname > 20)
            {
                return(new CustomerJsonResult(new ResponseResult {
                    code = ResponseHelper.ORPARAMCODE, msg = "名称不合法"
                }));
            }
            if (string.IsNullOrWhiteSpace(model.Menucode))
            {
                return(new CustomerJsonResult(new ResponseResult {
                    code = ResponseHelper.ORPARAMCODE, msg = "代码不能为空"
                }));
            }
            bool power = true;

            model.Createby   = UserInfo.UserCode;
            model.Createdate = DateTime.Now;
            if (Request.Form["isvisible"].ToString() == "0")
            {
                model.Isvisible = false;
            }
            else
            {
                model.Isvisible = true;
            }
            if (Request.Form["isenable"].ToString() == "0")
            {
                model.Isenable = false;
            }
            else
            {
                model.Isenable = true;
            }
            if (!string.IsNullOrWhiteSpace(model.Parentcode))
            {
                model.Menulevel = ISysMenuService.Query(" and menucode='" + model.Parentcode + "'")[0].Menulevel + 1;
            }
            else
            {
                model.Menulevel = 0;
            }
            List <SysMenuFunctionEntity> list = new List <SysMenuFunctionEntity>();

            //处理fun 功能
            if (Request.Form["funcode"] != null)
            {
                var funcode = RequestHelper.GetStringArrayNoNull(Request.Form["funcode"]);
                foreach (var item in funcode)
                {
                    list.Add(new SysMenuFunctionEntity
                    {
                        Funcode  = item,
                        Menucode = model.Menucode
                    });
                }
            }
            int result = 0;

            if (model.Id > 0)
            {
                power = SysPower(SysMenuConstant.MENU_MANAGE, SysMenuConstant.FUN_UPDATE, UserInfo.UserCode, false);
                if (!power)
                {
                    return(new CustomerJsonResult(new ResponseResult {
                        code = ResponseHelper.FAILCODE, msg = "权限不足"
                    }));
                }
                result = ISysMenuService.UpdateMenuFun(model, list);
            }
            else
            {
                power = SysPower(SysMenuConstant.MENU_MANAGE, SysMenuConstant.FUN_ADD, UserInfo.UserCode, false);
                if (!power)
                {
                    return(new CustomerJsonResult(new ResponseResult {
                        code = ResponseHelper.FAILCODE, msg = "权限不足"
                    }));
                }
                result = ISysMenuService.InsertMenuFun(model, list);
            }
            if (result > 0)
            {
                return(new CustomerJsonResult(new ResponseResult {
                    code = ResponseHelper.ESUCCESSCODE, msg = "保存成功"
                }));
            }
            else
            {
                return(new CustomerJsonResult(new ResponseResult {
                    code = ResponseHelper.FAILCODE, msg = "保存失败"
                }));
            }
        }
示例#12
0
 /// <summary>
 /// 插入菜单
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public bool AddSysMenu(SysMenuEntity model)
 {
     model.ModifyTime = DateTime.Now;
     return(_service.Insert(model));
 }
示例#13
0
 /// <summary>
 /// 更新菜单
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public bool ModifySysMenu(SysMenuEntity model)
 {
     model.ModifyTime = DateTime.Now;
     return(_service.Update(model));
 }
示例#14
0
 public ActionResult <object> AddSysMenu([FromForm] SysMenuEntity model)
 {
     RemoveSysMenuCache();
     return(_repository.AddSysMenu(model).ResponseSuccessFailure());
 }