/// <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); } } } }
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); }
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)); }
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)); }
/// <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)); }
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); }
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(); }
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); }
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(); } }
/// <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)]); } } } }
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 = "保存失败" })); } }
/// <summary> /// 插入菜单 /// </summary> /// <param name="model"></param> /// <returns></returns> public bool AddSysMenu(SysMenuEntity model) { model.ModifyTime = DateTime.Now; return(_service.Insert(model)); }
/// <summary> /// 更新菜单 /// </summary> /// <param name="model"></param> /// <returns></returns> public bool ModifySysMenu(SysMenuEntity model) { model.ModifyTime = DateTime.Now; return(_service.Update(model)); }
public ActionResult <object> AddSysMenu([FromForm] SysMenuEntity model) { RemoveSysMenuCache(); return(_repository.AddSysMenu(model).ResponseSuccessFailure()); }