Ejemplo n.º 1
0
        public IActionResult Put(int id, [FromBody] sys_menu value)
        {
            var menuDb = _sysMenuRpt.GetSingle(id);

            if (menuDb == null)
            {
                return(NotFound());
            }
            menuDb.MenuName  = value.MenuName;
            menuDb.MenuOrder = value.MenuOrder;
            menuDb.RoleIds   = value.RoleIds;
            menuDb.MenuAddr  = value.MenuAddr;
            menuDb.Icon      = value.Icon;
            menuDb.UpdatedAt = DateTime.Now;
            menuDb.FormName  = value.FormName;
            menuDb.IsValid   = true;
            using (var tran = _context.Database.BeginTransaction())
            {
                try
                {
                    _sysMenuRpt.Commit();
                    this.SetMenuRoles(menuDb);
                    tran.Commit();
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    tran.Rollback();
                    return(new BadRequestResult());;
                }
            }
            return(new NoContentResult());
        }
Ejemplo n.º 2
0
        public IActionResult Find(string ID)
        {
            dynamic list;

            if (!string.IsNullOrEmpty(ID))
            {
                var model = _sys_MenuService.FindByClause(p => p.Menu_ID == ID);
                //list =
                var menu       = _sys_MenuService.FindByClause(p => p.Menu_ID == model.Menu_ParentID);
                var Menu_Power = _sys_MenuFunctionService.FindListByClause(p => p.MenuFunction_MenuID == ID, "MenuFunction_CreateTime asc").Select(p => p.MenuFunction_FunctionID).ToList();
                var json       = Tools.EntityToDictionary(new Dictionary <string, object>()
                {
                    { "model", model },
                    { "pname", menu != null?menu.Menu_Name:"" },
                    { "Menu_Power", Menu_Power }
                });
                list = json;
            }
            else
            {
                var model = new sys_menu();
                var json  = Tools.EntityToDictionary(new Dictionary <string, object>()
                {
                    { "sss", model },
                    { "pname", "" },
                    { "Menu_Power", new string[] { } }
                });
                list = json;
            }
            return(Json(list));
        }
Ejemplo n.º 3
0
 public void UpdateMenu(sys_menu dto, string funcs)
 {
     if (!string.IsNullOrEmpty(dto.menu_url))
     {
         dto.menu_type = 1;
     }
     if (dto.parent_id == 0)
     {
         dto.menu_level = 1;
     }
     else
     {
         dto.menu_level = Sqldb.Queryable <sys_menu>().Where(s => s.id == dto.parent_id).Select(s => s.menu_level).First() + 1;
     }
     Sqldb.Updateable(dto).IgnoreColumns(s => new { s.create_time, s.create_person }).ExecuteCommand();
     Sqldb.Deleteable <sys_menu_ref_operate>().Where(s => s.menu_id == dto.id).ExecuteCommand();
     if (!string.IsNullOrEmpty(funcs))
     {
         var funcArray = funcs.Split(',');
         if (funcArray.Length > 0)
         {
             var list = new List <sys_menu_ref_operate>();
             foreach (var func in funcArray)
             {
                 var funcModel = new sys_menu_ref_operate();
                 funcModel.menu_id    = dto.id;
                 funcModel.operate_id = func.ToInt64();
                 list.Add(funcModel);
             }
             Sqldb.Insertable(list).ExecuteCommand();
         }
     }
 }
Ejemplo n.º 4
0
 public void AddMenu(sys_menu dto, string funcs)
 {
     dto.id            = IdWorkerHelper.NewId();
     dto.create_time   = DateTime.Now;
     dto.create_person = "admin";
     if (!string.IsNullOrEmpty(dto.menu_url))
     {
         dto.menu_type = 1;
     }
     if (dto.parent_id == 0)
     {
         dto.menu_level = 1;
     }
     else
     {
         dto.menu_level = _sysmenuRepository.Queryable <sys_menu>().Where(s => s.id == dto.parent_id).Select(s => s.menu_level).First() + 1;
     }
     _sysmenuRepository.Insert(dto);
     if (!string.IsNullOrEmpty(funcs))
     {
         var funcArray = funcs.Split(',');
         if (funcArray.Length > 0)
         {
             var list = new List <sys_menu_ref_operate>();
             foreach (var func in funcArray)
             {
                 var funcModel = new sys_menu_ref_operate();
                 funcModel.menu_id    = dto.id;
                 funcModel.operate_id = func.ToInt64();
                 list.Add(funcModel);
             }
             _sysmenurefoperateRepository.InsertRange(list);
         }
     }
 }
Ejemplo n.º 5
0
        private void CreateOrUpdateMenu(IPersistBroker broker, classification data)
        {
            var menu = broker.Retrieve <sys_menu>("SELECT * FROM sys_menu WHERE router = @code", new Dictionary <string, object>()
            {
                { "@code", $"blogs/{data.code}" }
            });

            if (menu != null)
            {
                menu.menu_Index = data.index;
                menu.name       = data.name;
                broker.Update(menu);
            }
            else
            {
                menu = new sys_menu()
                {
                    Id            = Guid.NewGuid().ToString(),
                    name          = data.name,
                    parentid      = "8201EFED-76E2-4CD1-A522-4803D52D4D92",
                    parentIdName  = "博客管理",
                    router        = $"blogs/{data.code}",
                    menu_Index    = data.index,
                    stateCode     = 1,
                    stateCodeName = "启用"
                };
                broker.Create(menu);
            }
        }
Ejemplo n.º 6
0
 public IActionResult EditSave(sys_menu vmodel, string Function_ID)
 {
     if (!string.IsNullOrEmpty(vmodel.Menu_ID))
     {
         if (string.IsNullOrEmpty(vmodel.Menu_Num))
         {
             return(Json(new { code = 100, msg = "请输入菜单编号" }));
         }
         if (string.IsNullOrEmpty(vmodel.Menu_Name))
         {
             return(Json(new { code = 100, msg = "请输入菜单名称" }));
         }
         var FunctionList = JsonConvert.DeserializeObject <List <string> >(Function_ID);
         _sys_MenuService.UpdateWhere(vmodel, p => new { p.Menu_Num, p.Menu_Name, p.Menu_Url, p.Menu_Icon, p.Menu_ParentID, p.Menu_IsShow }, p => p.Menu_ID == vmodel.Menu_ID);
         _sys_MenuFunctionService.Delete(p => p.MenuFunction_MenuID == vmodel.Menu_ID);
         foreach (var item in FunctionList)
         {
             _sys_MenuFunctionService.Insert(new sys_menufunction()
             {
                 MenuFunction_ID         = Guid.NewGuid().ToString(),
                 MenuFunction_FunctionID = item,
                 MenuFunction_MenuID     = vmodel.Menu_ID,
                 MenuFunction_CreateTime = DateTime.Now
             });
         }
     }
     else
     {
         return(Json(new { code = 100, msg = "参数无效" }));
     }
     return(Json(new { code = 200, msg = "操作成功" }));
 }
Ejemplo n.º 7
0
        public MsgModel DeleteMenu(sys_menu sys_menu)
        {
            //查找被删除节点的子节点
            List <sys_menu> myChilds = _baseSysMenuService.GetModels(a => a.menu_pids.Contains("[" + sys_menu.id + "]")).ToList();

            if (myChilds.Count > 0)
            {
                // "不能删除含有下级菜单的菜单"
                return(MsgModel.Fail("不能删除含有下级菜单的菜单"));
            }
            //查找被删除节点的父节点
            List <sys_menu> myFatherChilds = _baseSysMenuService.GetModels(a => a.menu_pids.Contains("[" + sys_menu.menu_pid + "]")).ToList();

            //我的父节点只有我这一个子节点,而我还要被删除,更新父节点为叶子节点。
            if (myFatherChilds.Count == 1)
            {
                sys_menu parent = _baseSysMenuService.GetModels(a => a.id == sys_menu.menu_pid).SingleOrDefault();
                parent.id      = sys_menu.menu_pid;
                parent.is_leaf = true;//更新父节点为叶子节点。
                _baseSysMenuService.Update(parent);
            }
            // 删除节点
            _baseSysMenuService.Remove(sys_menu);
            return(MsgModel.Success("删除菜单项成功!"));
        }
Ejemplo n.º 8
0
        public IActionResult Post([FromBody] sys_menu value)
        {
            var oldSysMenu = _sysMenuRpt.FindBy(f => f.MenuName == value.MenuName);

            if (oldSysMenu.Any())
            {
                return(BadRequest(string.Concat(value.MenuName, "已经存在。")));
            }
            value.CreatedAt = DateTime.Now;
            value.UpdatedAt = DateTime.Now;
            value.IsValid   = true;

            _sysMenuRpt.Add(value);
            using (var tran = _context.Database.BeginTransaction())
            {
                try
                {
                    _sysMenuRpt.Commit();
                    this.SetMenuRoles(value);
                    tran.Commit();
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    tran.Rollback();
                    return(new BadRequestResult());;
                }
            }
            return(new OkObjectResult(value));
        }
Ejemplo n.º 9
0
        public ActionResult SaveData(sys_menu dto, string funcs)
        {
            if (dto.parent_id == 0)
            {
                dto.menu_url  = "#";
                dto.menu_icon = dto.menu_icon ?? "fa fa-bookmark";
            }
            else
            {
                dto.menu_url  = dto.menu_url ?? "#";
                dto.menu_icon = dto.menu_icon ?? "fa fa-tag";
            }
            if (dto.role_tag.IsEmpty())
            {
                dto.role_tag = "#";
            }

            if (dto.id == 0)
            {
                _menuApp.AddMenu(dto, funcs);
            }
            else
            {
                _menuApp.UpdateMenu(dto, funcs);
            }
            return(Success("保存成功"));
        }
Ejemplo n.º 10
0
        public JsonResult Create(sys_menu model)
        {
            ExecuteResult Er = new ExecuteResult();

            if (!string.IsNullOrEmpty(model.KeyId))
            {
                //验证是否有相同同级
                int count = bll.GetList <sys_menu>(item => item.ParentId == model.ParentId && item.FullName == model.FullName && item.KeyId != model.KeyId && item.IsDeleted == false).Count();
                if (count > 0)
                {
                    Er.Result  = false;
                    Er.Message = "同级已存在相同菜单命名";
                }
                else
                {
                    #region 编辑
                    var old = bll.GetModelById <sys_menu>(model.KeyId);
                    old.IsRoot = false;
                    if (string.IsNullOrEmpty(model.ParentId))
                    {
                        old.IsRoot = true;
                    }
                    old.FullName    = model.FullName;
                    old.Description = model.Description;
                    old.Icon        = model.Icon;
                    old.NavigateUrl = model.NavigateUrl;
                    old.ParentId    = model.ParentId;
                    old.SortNum     = model.SortNum;
                    Er.Result       = bll.Update <sys_menu>(old) > 0;
                    Er.Message      = Er.Result ? "编辑成功" : "编辑失败";
                    #endregion
                }
            }
            else
            {
                int count = bll.GetList <sys_menu>(item => item.ParentId == model.ParentId && item.FullName == model.FullName && item.IsDeleted == false).Count();
                if (count > 0)
                {
                    Er.Result  = false;
                    Er.Message = "同级已存在相同菜单命名";
                }
                else
                {
                    #region 新增
                    model.IsRoot = false;
                    if (string.IsNullOrEmpty(model.ParentId))
                    {
                        model.IsRoot = true;
                    }
                    model.IsDeleted  = false;
                    model.CreateDate = DateTime.Now;
                    model.KeyId      = Guid.NewGuid().ToString();
                    Er.Result        = bll.Insert <sys_menu>(model) > 0;
                    Er.Message       = Er.Result ? "新增成功" : "新增失败";
                    #endregion
                }
            }
            return(Json(Er));
        }
Ejemplo n.º 11
0
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            sys_menu sys_menu = await db.sys_menu.FindAsync(id);

            db.sys_menu.Remove(sys_menu);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
Ejemplo n.º 12
0
        public void AddMenu(sys_menu dto)
        {
            dto.id          = Guid.NewGuid().ToString("N");
            dto.create_time = DateTime.Now;
            dto.creator     = "admin";
            dto.menu_icon   = dto.menu_font;

            Sqldb.Insertable(dto).ExecuteCommand();
        }
Ejemplo n.º 13
0
        /// <summary>
        /// 菜单管理:更新菜单的禁用状态
        /// </summary>
        /// <param name="id"></param>
        /// <param name="status"></param>
        public MsgModel UpdateStatus(int id, bool status)
        {
            sys_menu sys_menu = _baseSysMenuService.GetModels(a => a.id == id).SingleOrDefault();

            sys_menu.id     = id;
            sys_menu.status = status;
            var result = _baseSysMenuService.Update(sys_menu);

            return(result ? MsgModel.Success("菜单禁用状态更新成功!") : MsgModel.Fail("菜单禁用状态更新失败!"));
        }
Ejemplo n.º 14
0
        public async Task <ActionResult> Edit([Bind(Include = "menu_id,menu_name,menu_type,menu_link,menu_parent")] sys_menu sys_menu)
        {
            if (ModelState.IsValid)
            {
                db.Entry(sys_menu).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(sys_menu));
        }
Ejemplo n.º 15
0
 public JsonResult SaveData(sys_menu dto)
 {
     if (string.IsNullOrEmpty(dto.id))
     {
         _menuApp.AddMenu(dto);
     }
     else
     {
         _menuApp.UpdateMenu(dto);
     }
     return(Success("保存成功"));
 }
Ejemplo n.º 16
0
        public async Task <ActionResult> Create([Bind(Include = "menu_id,menu_name,menu_type,menu_link,menu_parent")] sys_menu sys_menu)
        {
            if (ModelState.IsValid)
            {
                db.sys_menu.Add(sys_menu);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            return(View(sys_menu));
        }
Ejemplo n.º 17
0
 public IHttpActionResult Find_Menu(int id)
 {
     try
     {
         MenuService svc   = new MenuService();
         sys_menu    entry = svc.Find(id);
         return(Json(new { code = 1, msg = "ok", entry = entry }));
     }
     catch (Exception e)
     {
         return(Json(new { code = 0, msg = e.Message }));
     }
 }
Ejemplo n.º 18
0
        //新增编辑
        public IActionResult Create(string KeyId)
        {
            //链接为空的菜单(一级菜单)和跟菜单都可以为父级
            ViewBag.MenuParent = bll.GetList <sys_menu>(item => (item.NavigateUrl == null || item.IsRoot == true) && item.IsDeleted == false).ToList();
            sys_menu model = null;

            if (!string.IsNullOrEmpty(KeyId))
            {
                model = bll.GetModelById <sys_menu>(KeyId);
            }
            model = model ?? new sys_menu();
            return(View(model));
        }
Ejemplo n.º 19
0
 public IHttpActionResult Modify_Menu(sys_menu entry)
 {
     try
     {
         MenuService svc = new MenuService();
         int         cnt = svc.Update(entry);
         return(cnt > 0 ? Json(new { code = 1, msg = "ok" }) : Json(new { code = 0, msg = "error" }));
     }
     catch (Exception e)
     {
         return(Json(new { code = 0, msg = e.Message }));
     }
 }
Ejemplo n.º 20
0
 public IHttpActionResult GetUpItem(int id)
 {
     try
     {
         MenuService ms    = new MenuService();
         sys_menu    entry = ms.UpItem(id);
         return(Json(new { code = 1, msg = "ok", entry = entry }));
     }
     catch (Exception e)
     {
         return(Json(new { code = 0, msg = e.Message }));
     }
 }
Ejemplo n.º 21
0
        private StringBuilder SubMenu(IEnumerable <sys_menu> list, sys_menu item)
        {
            StringBuilder json = new StringBuilder();

            if (list.Count(t => t.pid == item.id) > 0)
            {
                foreach (var sitem in list.Where(t => t.pid == item.id))
                {
                    json.Append("{\"id\":" + sitem.id + ",\"pid\":" + sitem.pid + ",\"title\":\"" + sitem.title + "\",\"subitems\":[" + SubMenu(list, sitem).ToString() + "]},");
                }
                json.Remove(json.Length - 1, 1);
            }
            return(json);
        }
Ejemplo n.º 22
0
 public IHttpActionResult Add_Menu(sys_menu entry)
 {
     try
     {
         var         route = Request.GetRouteData();
         MenuService svc   = new MenuService();
         int         cnt   = svc.Add(entry);
         return(cnt > 0 ? Json(new { code = 1, msg = "ok" }) : Json(new { code = 0, msg = "编码重复!" }));
     }
     catch (Exception e)
     {
         return(Json(new { code = 0, msg = e.Message }));
     }
 }
Ejemplo n.º 23
0
 /// <summary>
 /// 菜单表分页
 /// </summary>
 /// <param name="PageIndex"></param>
 /// <param name="PageSize"></param>
 /// <param name="model">菜单条件对象</param>
 /// <returns></returns>
 public PageModel <sys_menu> MenuPage(int PageIndex, int PageSize, sys_menu model)
 {
     using (var db = SqlSugarDB.MasterDB)
     {
         int totalNumber = 0;
         var list        = db.Queryable <sys_menu>()
                           .Where(item => item.IsDeleted == false)
                           .WhereIF(!string.IsNullOrEmpty(model.FullName) && !string.IsNullOrEmpty(model.NavigateUrl), item => item.FullName.Contains(model.FullName) || item.NavigateUrl.Contains(model.NavigateUrl))
                           .WhereIF(!string.IsNullOrEmpty(model.ParentId), item => item.ParentId == model.ParentId)
                           .OrderBy(item => item.SortNum)
                           .ToPageList(PageIndex, PageSize, ref totalNumber);
         return(GetPageInfo <sys_menu>(PageIndex, PageSize, list, totalNumber));
     }
 }
Ejemplo n.º 24
0
        // GET: sys_menu/Delete/5
        public async Task <ActionResult> Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            sys_menu sys_menu = await db.sys_menu.FindAsync(id);

            if (sys_menu == null)
            {
                return(HttpNotFound());
            }
            return(View(sys_menu));
        }
Ejemplo n.º 25
0
        public MsgModel AddMenu(sys_menu sys_menu)
        {
            SetMenuIdsAndLevel(sys_menu);
            sys_menu.is_leaf = true;//新增的菜单节点都是子节点,没有下级

            sys_menu parent = _baseSysMenuService.GetModels(a => a.id == sys_menu.menu_pid).SingleOrDefault();

            parent.id      = sys_menu.menu_pid;
            parent.is_leaf = false; //更新父节点为非子节点。
            _baseSysMenuService.Update(parent);

            sys_menu.status = false;//设置是否禁用,新增节点默认可用
            _baseSysMenuService.Update(sys_menu);
            return(MsgModel.Success("新增菜单项成功!"));
        }
Ejemplo n.º 26
0
        public IActionResult Delete(int id)
        {
            sys_menu sysMenu = _sysMenuRpt.GetSingle(id);

            if (sysMenu == null)
            {
                return(new NotFoundResult());
            }
            _sysRoleMenuRpt.DeleteWhere(f => f.MenuId == id);
            _sysRoleMenuRpt.Commit();

            sysMenu.IsValid = false;
            _sysMenuRpt.Commit();

            return(new NoContentResult());
        }
Ejemplo n.º 27
0
        /// <summary>
        /// 设置某子节点的所有祖辈id
        /// </summary>
        /// <param name="child"></param>
        private void SetMenuIdsAndLevel(sys_menu child)
        {
            List <sys_menu> allMenus = _baseSysMenuService.GetModels(null).ToList();

            foreach (sys_menu sys_menu in allMenus)
            {
                // 从组织列表中找到自己的直接父亲
                if (sys_menu.id == child.menu_pid)
                {
                    //直接父亲的所有祖辈id + 直接父id = 当前子节点的所有祖辈id
                    //爸爸的所有祖辈 + 爸爸 = 孩子的所有祖辈
                    child.menu_pids = sys_menu.menu_pids + ",[" + child.menu_pid + "]";
                    child.level     = sys_menu.level + 1;
                }
            }
        }
Ejemplo n.º 28
0
        //分页
        public JsonResult PageData(int PageIndex, int PageSize, sys_menu model)
        {
            var page = bll.MenuPage(PageIndex, PageSize, model);

            if (page != null && page.rows != null)
            {
                string json = JsonConvert.SerializeObject(page.rows);
                JArray ja   = (JArray)JsonConvert.DeserializeObject(json);
                for (int i = 0; i < ja.Count; i++)
                {
                    ja[i]["CreateDate"] = ja[i]["CreateDate"] == null ? "" : Convert.ToDateTime(ja[i]["CreateDate"].ToString()).ToString("yyyy-MM-dd HH:mm:ss");
                }
                page.rows = ja;
            }
            return(Json(page));
        }
Ejemplo n.º 29
0
        public bool Create(CreateSysMenuRequestDto dto)
        {
            var entity = new sys_menu
            {
                Action     = dto.Action,
                Controller = dto.Controller,
                CreateTime = DateTime.Now,
                EditTime   = DateTime.Now,
                IsDelete   = false,
                Name       = dto.Name,
                Url        = dto.Url,
            };

            _mptContext.Add(entity);
            var result = _mptContext.SaveChanges();

            return(result > 1);
        }
Ejemplo n.º 30
0
        private IEnumerable <dynamic> SubMenus(IEnumerable <sys_menu> list, sys_menu item)
        {
            List <dynamic> menulist = new List <dynamic>();

            foreach (var sitem in list.Where(t => t.pid == item.id))
            {
                if (list.Count(t => t.pid == sitem.id) == 0)
                {
                    menulist.Add(new { path = sitem.path, name = sitem.code, meta = new { title = sitem.title, icon = sitem.icon }, component = sitem.viewpath });
                }
                else
                {
                    var subitem = SubMenus(list, sitem);
                    menulist.Add(new { path = sitem.path, name = sitem.code, meta = new { title = sitem.title, icon = sitem.icon }, children = subitem, component = sitem.viewpath });
                }
            }
            return(menulist);
        }