Exemple #1
0
        public async Task <object> GetMenus([FromServices] ISysModuleService sysModuleService)
        {
            StringBuilder sbMenu  = new StringBuilder();
            var           modules = await sysModuleService.GetAllAsync(p => p.GUID != null);

            sbMenu.Append("[");
            //一级菜单
            var spaces = modules.FindAll(p => p.Levels == 0).OrderBy(p => p.DisplayOrder);

            foreach (var space in spaces)
            {
                sbMenu.Append("{\"Id\":\"" + space.Alias + "\",\"Guid\":\"" + space.GUID + "\",\"Title\":\"" + space.Title + "\",\"Icon\":\"" + space.Icon + "\",\"Menus\":[");

                //二级菜单
                var manages = modules.FindAll(p => p.Levels == 1 && p.Parent_GUID == space.GUID).OrderBy(p => p.DisplayOrder);
                foreach (var manage in manages)
                {
                    sbMenu.Append("{\"Id\":\"" + manage.Alias + "\",\"Guid\":\"" + manage.GUID + "\",\"Title\":\"" + manage.Title + "\",\"Icon\":\"" + manage.Icon + "\",\"parent\":\"" + space.Alias + "\",\"Items\":[");

                    //三级菜单
                    var menus = modules.FindAll(p => p.Levels == 2 && p.Parent_GUID == manage.GUID).OrderBy(p => p.DisplayOrder);
                    foreach (var menu in menus)
                    {
                        sbMenu.Append("{\"Id\":\"" + menu.Alias + "\",\"Guid\":\"" + menu.GUID + "\",\"Title\":\"" + menu.Title + "\",\"Icon\":\"" + menu.Icon + "\",\"parent\":\"" + manage.Alias + "\",\"url\":\"" + menu.ModulePath + "\"},");
                    }
                    sbMenu.Length -= 1;
                    sbMenu.Append("]},");
                }
                sbMenu.Length -= 1;
                sbMenu.Append("]},");
            }
            sbMenu.Length -= 1;
            sbMenu.Append("]");

            return(Json(Newtonsoft.Json.JsonConvert.DeserializeObject(sbMenu.ToString())));
        }
Exemple #2
0
        public async Task <object> PutAsync(SysModules entity)
        {
            var json = new ResJson()
            {
                success = false
            };

            try
            {
                bool IsSave = string.IsNullOrEmpty(entity.GUID);

                //初始化子模块
                List <SysModules> ChildModules = new List <SysModules>();

                if (IsSave)
                {
                    // 模块别名(权限标示名称)不能重复
                    if (await sysModuleService.IsAnyAsync(p => p.Alias == entity.Alias))
                    {
                        json.message = "模块别名不能重复";
                        return(json);
                    }

                    // Add 初始参数
                    entity.CreateUser = AdminUser.User.Account;
                    entity.CreateDate = DateTime.Now;
                    entity.GUID       = Guid.NewGuid().ToString();
                }

                // Add、Update 默认参数
                entity.UpdateUser = AdminUser.User.Account;
                entity.UpdateDate = DateTime.Now;

                //设置模块级别
                if (entity.Parent_GUID.Equals("00000000-0000-0000-0000-000000000000"))
                {
                    entity.Levels = 0;
                }
                else
                {
                    var ParentModule = await sysModuleService.GetAsync(p => p.GUID == entity.Parent_GUID);

                    entity.Levels = ParentModule.Levels + 1;
                }

                //批量修改下级模块(模块级别、显示状态)
                if (!IsSave)
                {
                    ChildModules.Add(entity);

                    var OldModules = await sysModuleService.GetAsync(p => p.GUID == entity.GUID);

                    //是否改变
                    if (OldModules.Levels != entity.Levels || OldModules.IsDisplay != entity.IsDisplay)
                    {
                        //递归修改子模块
                        sysModuleService.RecursiveChildModulesLevels(entity.GUID, entity.Levels, entity.IsDisplay, await sysModuleService.GetAllAsync(p => p.GUID != ""), ChildModules);
                    }
                }

                //保存模块
                if (IsSave ? await sysModuleService.SaveAsync(entity) : await sysModuleService.UpdateAsync(ChildModules))
                {
                    json.message = "操作成功!";
                    json.success = true;
                }
                else
                {
                    json.message = "操作失败!";
                }
            }
            catch (Exception ex)
            {
                json.message = "网络超时.";
                throw ex;
            }

            return(json);
        }