From f3ad93aabd69da262c6ac36b36ac726a7999391a Mon Sep 17 00:00:00 2001 From: zhangqi <2794379662@qq.com> Date: Tue, 27 Apr 2021 10:42:21 +0800 Subject: [PATCH] =?UTF-8?q?feature:=E5=8C=BA=E5=9F=9F=E8=A1=A8=E6=89=8B?= =?UTF-8?q?=E5=8A=A8=E6=8C=87=E5=AE=9A=E5=A4=9A=E5=AF=B9=E5=A4=9A=E5=85=B3?= =?UTF-8?q?=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Api/Ewide.Core/Entity/AreaNumber.cs | 23 +++++++++++++++++++++++ Api/Ewide.Core/Entity/SysRole.cs | 17 +++++++++++++++-- Api/Ewide.Core/Entity/SysUser.cs | 15 ++++++++++++++- 3 files changed, 52 insertions(+), 3 deletions(-) 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 }); + }); } } }