/// <summary> /// 新增或更改菜单 /// </summary> public async Task CreateOrUpdateMenuAsync(CreateOrUpdateMenuInput input) { if (input.MenuEditDto.Id.HasValue) { await UpdateMenuAsync(input.MenuEditDto); } else { await CreateMenuAsync(input.MenuEditDto); } }
/// <summary> /// 新增或更改菜单 /// </summary> public async Task CreateOrUpdateMenuAsync(CreateOrUpdateMenuInput input) { //权限配置 var entity = input.MenuEditDto.MapTo <Menu>(); var plist = await _cachingAppService.GetPermissionCache(); var sort = plist.Items.Count + 1; var page = plist.Items.First(c => c.Name.Equals("page")); if (input.MenuEditDto.ParentId.HasValue) { var parent = await _menuRepository.FirstOrDefaultAsync(input.MenuEditDto.ParentId.Value); page = plist.Items.First(c => c.Name.Equals(parent.RequiredPermissions)); } var temp = $"{page.Name}.{entity.Name}"; input.MenuEditDto.RequiredPermissions = temp; await ModifyMenuPermissions(entity, temp, page, sort, input.PermissionTypes); //if(!input.MenuEditDto.RequiresAuthentication) //{ // if (await _permissionRepository.CountAsync(c => c.Name.Contains(temp)) > 0) // { // await DeleteMenuPermissions(temp); // } //} //菜单配置 if (input.MenuEditDto.Id.HasValue) { await UpdateMenuAsync(input.MenuEditDto); } else { await CreateMenuAsync(input.MenuEditDto); } await _cachingAppService.ClearCache(new EntityDto <string>(SystemCacheName.MenuCache)); }