diff --git a/Api/Ewide.Core/Entity/AreaNumber.cs b/Api/Ewide.Core/Entity/AreaNumber.cs
index 4090445..46cd35e 100644
--- a/Api/Ewide.Core/Entity/AreaNumber.cs
+++ b/Api/Ewide.Core/Entity/AreaNumber.cs
@@ -40,5 +40,28 @@ namespace Ewide.Core.Entity
[Comment("排序")]
public int Sort { get; set; }
+
+ ///
+ /// 多个区域有多个用户绑定自定义数据
+ ///
+ public ICollection SysUsers { get; set; }
+ ///
+ /// 中间表
+ ///
+ public List SysUserAreas { get; set; }
+
+ ///
+ /// 多个区域有多个角色绑定权限数据
+ ///
+ public ICollection SysRoles { get; set; }
+ ///
+ /// 中间表
+ ///
+ public List SysRoleAreas { get; set; }
+ ///
+ /// 一个区域有多个组织
+ ///
+ public ICollection SysOrgs { get; set; }
+
}
}
diff --git a/Api/Ewide.Core/Entity/SysRole.cs b/Api/Ewide.Core/Entity/SysRole.cs
index 38b7854..f1ce913 100644
--- a/Api/Ewide.Core/Entity/SysRole.cs
+++ b/Api/Ewide.Core/Entity/SysRole.cs
@@ -1,4 +1,5 @@
-using Furion.DatabaseAccessor;
+using Ewide.Core.Entity;
+using Furion.DatabaseAccessor;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using System;
@@ -70,6 +71,10 @@ namespace Ewide.Core
///
public List SysRoleDataScopes { get; set; }
+ public ICollection AreaNumbers { get; set; }
+
+ public List SysRoleAreas { get; set; }
+
///
/// 多对多(菜单)
///
@@ -97,7 +102,15 @@ namespace Ewide.Core
{
u.HasKey(c => new { c.SysRoleId, c.SysOrgId });
});
-
+ entityBuilder.HasMany(p => p.AreaNumbers)
+ .WithMany(p => p.SysRoles)
+ .UsingEntity(
+ u => u.HasOne(c => c.AreaNumber).WithMany(c => c.SysRoleAreas).HasForeignKey(c => c.AreaNumberCode),
+ u => u.HasOne(c => c.SysRole).WithMany(c => c.SysRoleAreas).HasForeignKey(c => c.SysRoleId),
+ u =>
+ {
+ u.HasKey(c => new { c.SysRoleId, c.AreaNumberCode });
+ });
entityBuilder.HasMany(p => p.SysMenus)
.WithMany(p => p.SysRoles)
.UsingEntity(
diff --git a/Api/Ewide.Core/Entity/SysUser.cs b/Api/Ewide.Core/Entity/SysUser.cs
index 21d4f40..8bc6dca 100644
--- a/Api/Ewide.Core/Entity/SysUser.cs
+++ b/Api/Ewide.Core/Entity/SysUser.cs
@@ -1,4 +1,5 @@
-using Furion.DatabaseAccessor;
+using Ewide.Core.Entity;
+using Furion.DatabaseAccessor;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using System;
@@ -127,6 +128,11 @@ namespace Ewide.Core
///
public List SysUserDataScopes { get; set; }
+ public ICollection AreaNumbers { get; set; }
+ ///
+ /// 多对多中间表(用户-区域 数据范围)
+ ///
+ public List SysUserAreas { get; set; }
///
/// 配置多对多关系
///
@@ -150,6 +156,13 @@ namespace Ewide.Core
{
u.HasKey(c => new { c.SysUserId, c.SysOrgId });
});
+ entityBuilder.HasMany(p => p.AreaNumbers).WithMany(p => p.SysUsers).UsingEntity(
+ u => u.HasOne(c => c.AreaNumber).WithMany(c => c.SysUserAreas).HasForeignKey(c => c.AreaNumberCode),
+ u => u.HasOne(c => c.SysUser).WithMany(c => c.SysUserAreas).HasForeignKey(c => c.SysUserId),
+ u =>
+ {
+ u.HasKey(c => new { c.SysUserId, c.AreaNumberCode });
+ });
}
}
}