From 723bfd806486bb870f0003f2cfbf61476a4e70f6 Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期一, 04 八月 2025 16:59:09 +0800
Subject: [PATCH] pref:资源接口

---
 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