From 0c4b61d3db011bc921f1b00c8e1bfb0367947b30 Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期一, 04 八月 2025 17:00:58 +0800 Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/ApiFlexJob --- FlexJobApi.User.Application/Roles/Commands/SaveRoleCommandHandler.cs | 31 +++++++++++++++++++++++++++++++ 1 files changed, 31 insertions(+), 0 deletions(-) diff --git a/FlexJobApi.User.Application/Roles/Commands/SaveRoleCommandHandler.cs b/FlexJobApi.User.Application/Roles/Commands/SaveRoleCommandHandler.cs index 781349f..5d952ac 100644 --- a/FlexJobApi.User.Application/Roles/Commands/SaveRoleCommandHandler.cs +++ b/FlexJobApi.User.Application/Roles/Commands/SaveRoleCommandHandler.cs @@ -32,6 +32,37 @@ .FirstOrDefaultAsync(it => it.Id == request.Id, cancellationToken); if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "瑙掕壊"); request.Adapt(entity); + entity.RoleMenus = entity.RoleMenus.Where(it => request.MenuIds.Contains(it.MenuId)).ToList(); + foreach (var menuId in request.MenuIds) + { + var entityRoleMenu = entity.RoleMenus.FirstOrDefault(it => it.MenuId == menuId); + if (entityRoleMenu == null) + { + entityRoleMenu = new RoleMenu + { + MenuId = menuId + }; + entity.RoleMenus.Add(entityRoleMenu); + } + } + entity.RoleResources = entity.RoleResources.Where(it => request.Resources.Any(r => r.ResourceId == it.ResourceId)).ToList(); + foreach (var roleResource in entity.RoleResources) + { + var entityRoleResource = entity.RoleResources.FirstOrDefault(it => it.ResourceId == roleResource.ResourceId); + if (entityRoleResource == null) + { + entityRoleResource = new RoleResource + { + ResourceId = roleResource.ResourceId, + DataPower = roleResource.DataPower + }; + entity.RoleResources.Add(roleResource); + } + else + { + entityRoleResource.DataPower = roleResource.DataPower; + } + } await rep.UpdateAsync(entity); return entity.Id; } -- Gitblit v1.9.1