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()))); }
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); }