Просмотр исходного кода

update Admin.NET/Admin.NET.Core/Service/Tenant/SysTenantService.cs.

Signed-off-by: 天天 <xingzheng642@163.com>
天天 3 месяцев назад
Родитель
Сommit
dfd812879f
1 измененных файлов с 11 добавлено и 0 удалено
  1. 11 0
      Admin.NET/Admin.NET.Core/Service/Tenant/SysTenantService.cs

+ 11 - 0
Admin.NET/Admin.NET.Core/Service/Tenant/SysTenantService.cs

@@ -520,6 +520,9 @@ public class SysTenantService : IDynamicApiController, ITransient
         if (menuList.Where(u => !string.IsNullOrWhiteSpace(u.Name)).GroupBy(u => u.Name).Any(u => u.Count() > 1))
         if (menuList.Where(u => !string.IsNullOrWhiteSpace(u.Name)).GroupBy(u => u.Name).Any(u => u.Count() > 1))
             throw Oops.Oh(ErrorCodeEnum.D4009);
             throw Oops.Oh(ErrorCodeEnum.D4009);
 
 
+         //获取旧记录数据   原ID不能改变  种子初始化后  数据重复
+        var tenantMenuList = await _sysTenantMenuRep.AsQueryable().Where(u => u.TenantId == input.Id).ToListAsync();
+
         // 删除旧记录
         // 删除旧记录
         await _sysTenantMenuRep.AsDeleteable().Where(u => u.TenantId == input.Id).ExecuteCommandAsync();
         await _sysTenantMenuRep.AsDeleteable().Where(u => u.TenantId == input.Id).ExecuteCommandAsync();
 
 
@@ -530,6 +533,14 @@ public class SysTenantService : IDynamicApiController, ITransient
 
 
         // 保存租户菜单
         // 保存租户菜单
         var sysTenantMenuList = input.MenuIdList.Select(menuId => new SysTenantMenu { TenantId = input.Id, MenuId = menuId }).ToList();
         var sysTenantMenuList = input.MenuIdList.Select(menuId => new SysTenantMenu { TenantId = input.Id, MenuId = menuId }).ToList();
+        
+        //原ID不变
+        foreach (var item in sysTenantMenuList)
+        {
+            var tenantMenu = tenantMenuList.FirstOrDefault(u => u.TenantId == item.TenantId && u.MenuId == item.MenuId);
+            if (tenantMenu != null) item.Id = tenantMenu.Id;
+        }
+
         await _sysTenantMenuRep.InsertRangeAsync(sysTenantMenuList);
         await _sysTenantMenuRep.InsertRangeAsync(sysTenantMenuList);
 
 
         // 清除菜单权限缓存
         // 清除菜单权限缓存