update 规范化所有区域相关字段

This commit is contained in:
2021-04-30 10:53:38 +08:00
parent 73001d5f8a
commit 2cdf62eeb5
13 changed files with 33 additions and 34 deletions

View File

@@ -15,12 +15,12 @@ namespace Ewide.Core
public class SysAreaCode: IEntity
{
[Key]
[Comment("系统使用的区域码")]
[Comment("系统使用的区域码")]
[MaxLength(50)]
public string Code { get; set; }
[Comment("对外使用的区域代码")]
[Comment("区域的行政编码")]
[MaxLength(50)]
public string ShowCode { get; set; }
public string AdCode { get; set; }
[Comment("名称")]
[Required]

View File

@@ -67,12 +67,13 @@ namespace Ewide.Core
[Comment("状态")]
public CommonStatus Status { get; set; } = CommonStatus.ENABLE;
[Comment("组织所在区域代码")]
public string AreaNumberCode { get; set; }
public string AreaCode { get; set; }
/// <summary>
/// 一对一 一个组织对应一个区域代码
/// </summary>
public SysAreaCode AreaCode { get; set; }
public SysAreaCode Area { get; set; }
/// <summary>
/// 多对多(用户)

View File

@@ -104,11 +104,11 @@ namespace Ewide.Core
entityBuilder.HasMany(p => p.AreaCodes)
.WithMany(p => p.SysRoles)
.UsingEntity<SysRoleArea>(
u => u.HasOne(c => c.AreaCode).WithMany(c => c.SysRoleAreas).HasForeignKey(c => c.AreaNumberCode),
u => u.HasOne(c => c.Area).WithMany(c => c.SysRoleAreas).HasForeignKey(c => c.AreaCode),
u => u.HasOne(c => c.SysRole).WithMany(c => c.SysRoleAreas).HasForeignKey(c => c.SysRoleId),
u =>
{
u.HasKey(c => new { c.SysRoleId, c.AreaNumberCode });
u.HasKey(c => new { c.SysRoleId, c.AreaCode });
});
entityBuilder.HasMany(p => p.SysMenus)
.WithMany(p => p.SysRoles)

View File

@@ -18,13 +18,11 @@ namespace Ewide.Core
/// 角色Id
/// </summary>
[Comment("角色Id")]
[Column("SysRoleId", TypeName = "varchar(36)")]
public string SysRoleId { get; set; }
public SysRole SysRole { get; set; }
[Comment("系统使用的区域代码")]
[MaxLength(10)]
public string AreaNumberCode { get; set; }
public SysAreaCode AreaCode { get; set; }
public string AreaCode { get; set; }
public SysAreaCode Area { get; set; }
}
}

View File

@@ -156,11 +156,11 @@ namespace Ewide.Core
u.HasKey(c => new { c.SysUserId, c.SysOrgId });
});
entityBuilder.HasMany(p => p.AreaCodes).WithMany(p => p.SysUsers).UsingEntity<SysUserArea>(
u => u.HasOne(c => c.AreaCode).WithMany(c => c.SysUserAreas).HasForeignKey(c => c.AreaNumberCode),
u => u.HasOne(c => c.Area).WithMany(c => c.SysUserAreas).HasForeignKey(c => c.AreaCode),
u => u.HasOne(c => c.SysUser).WithMany(c => c.SysUserAreas).HasForeignKey(c => c.SysUserId),
u =>
{
u.HasKey(c => new { c.SysUserId, c.AreaNumberCode });
u.HasKey(c => new { c.SysUserId, c.AreaCode });
});
}
}

View File

@@ -18,7 +18,7 @@ namespace Ewide.Core
public SysUser SysUser { get; set; }
[Comment("系统使用的区域代码")]
[MaxLength(10)]
public string AreaNumberCode { get; set; }
public SysAreaCode AreaCode { get; set; }
public string AreaCode { get; set; }
public SysAreaCode Area { get; set; }
}
}

View File

@@ -1353,7 +1353,7 @@
状态(字典 0正常 1停用 2删除
</summary>
</member>
<member name="P:Ewide.Core.SysOrg.AreaCode">
<member name="P:Ewide.Core.SysOrg.Area">
<summary>
一对一 一个组织对应一个区域代码
</summary>

View File

@@ -14,9 +14,9 @@ namespace Ewide.Core
{
return new[]
{
new SysAreaCode{Code="3302",ShowCode="3302",Name="XX市",Note="XX市",LevelType=1,Sort=0 },
new SysAreaCode{Code="330266",ShowCode="330266",Name="测试区",Note="测试区",LevelType=2,Sort=100 },
new SysAreaCode{Code="330266001",ShowCode="330266001",Name="测试街道",Note="测试街道",LevelType=3,Sort=0},
new SysAreaCode{Code="3302",AdCode="3302",Name="XX市",Note="XX市",LevelType=1,Sort=0 },
new SysAreaCode{Code="330266",AdCode="330266",Name="测试区",Note="测试区",LevelType=2,Sort=100 },
new SysAreaCode{Code="330266001",AdCode="330266001",Name="测试街道",Note="测试街道",LevelType=3,Sort=0},
};
}
}

View File

@@ -43,7 +43,7 @@ namespace Ewide.Core.Service.Area
public async Task DeleteAreaCode(DeleteAreaCodeInput input)
{
var AreaCode = await _areaCodeRep.FirstOrDefaultAsync(p => p.Code == input.Code);
if (await _sysOrgRep.DetachedEntities.AnyAsync(o => o.AreaNumberCode == input.Code))
if (await _sysOrgRep.DetachedEntities.AnyAsync(o => o.AreaCode == input.Code))
{
throw Oops.Oh("不能删除已包含区域的组织");
}
@@ -97,7 +97,7 @@ namespace Ewide.Core.Service.Area
var AreaCodes = await _areaCodeRep.DetachedEntities
.Where(input.LevelType.HasValue, a => a.LevelType == input.LevelType)
.Where(!string.IsNullOrEmpty(input.Code), a => a.Code.StartsWith(input.Code))
.Where(!string.IsNullOrEmpty(input.ShowCode), a => a.ShowCode.StartsWith(input.ShowCode))
.Where(!string.IsNullOrEmpty(input.ShowCode), a => a.AdCode.StartsWith(input.ShowCode))
.Where(!string.IsNullOrEmpty(input.Name), a => a.Name.StartsWith(input.Name))
.ToPageData(input);
return XnPageResult<SysAreaCode>.PageResult(AreaCodes);

View File

@@ -349,14 +349,14 @@ namespace Ewide.Core.Service
{
var org = await _sysOrgRep.FirstOrDefaultAsync(o => o.Id == orgId);
if (dataScopeType == (int)DataScopeType.AREA_WITH_CHILD)
return await _sysOrgRep.DetachedEntities.Where(p => p.AreaNumberCode.StartsWith(org.Code)).Select(p => p.Id).ToListAsync();
return await _sysOrgRep.DetachedEntities.Where(p => p.AreaCode.StartsWith(org.Code)).Select(p => p.Id).ToListAsync();
if (dataScopeType == (int)DataScopeType.AREA)
return await _sysOrgRep.DetachedEntities.Where(p => p.AreaNumberCode == org.Code).Select(p => p.Id).ToListAsync();
return await _sysOrgRep.DetachedEntities.Where(p => p.AreaCode == org.Code).Select(p => p.Id).ToListAsync();
return new List<string>();
}
public async Task<List<string>> GetAreaDataScopeIdListWithoutChildrenArea(string areaNumberCode)
{
return await _sysOrgRep.DetachedEntities.Where(p => p.AreaNumberCode == areaNumberCode).Select(p => p.Id).ToListAsync();
return await _sysOrgRep.DetachedEntities.Where(p => p.AreaCode == areaNumberCode).Select(p => p.Id).ToListAsync();
}
}
}

View File

@@ -21,7 +21,7 @@ namespace Ewide.Core.Service.Role
public async Task DeleteRoleAreaListByAreaCodeList(List<string> areaCodeList)
{
var dataScopes = await _sysRoleAreaRep.DetachedEntities.Where(u => areaCodeList.Contains(u.AreaNumberCode)).ToListAsync();
var dataScopes = await _sysRoleAreaRep.DetachedEntities.Where(u => areaCodeList.Contains(u.AreaCode)).ToListAsync();
dataScopes.ForEach(u =>
{
u.Delete();
@@ -39,7 +39,7 @@ namespace Ewide.Core.Service.Role
public async Task<List<string>> GetRoleAreaCodeList(List<string> roleIdList)
{
return await _sysRoleAreaRep.DetachedEntities.Where(u => roleIdList.Contains(u.SysRoleId)).Select(u=>u.AreaNumberCode).Distinct().ToListAsync();
return await _sysRoleAreaRep.DetachedEntities.Where(u => roleIdList.Contains(u.SysRoleId)).Select(u=>u.AreaCode).Distinct().ToListAsync();
}
@@ -56,7 +56,7 @@ namespace Ewide.Core.Service.Role
new SysRoleArea
{
SysRoleId = input.Id,
AreaNumberCode = u
AreaCode = u
}.Insert();
});
}

View File

@@ -22,7 +22,7 @@ namespace Ewide.Core.Service.User
public async Task DeleteUserAreaListByAreaCodeList(List<string> areaCodeList)
{
var areaList = await _sysUserAreaRep.DetachedEntities.Where(ua => areaCodeList.Contains(ua.AreaNumberCode)).ToListAsync();
var areaList = await _sysUserAreaRep.DetachedEntities.Where(ua => areaCodeList.Contains(ua.AreaCode)).ToListAsync();
foreach (var area in areaList)
{
area.Delete();
@@ -40,7 +40,7 @@ namespace Ewide.Core.Service.User
public async Task<List<string>> GetUserAreaIdList(string userId)
{
return await _sysUserAreaRep.DetachedEntities.Where(ua => ua.SysUserId == userId).Select(ua => ua.AreaNumberCode).ToListAsync();
return await _sysUserAreaRep.DetachedEntities.Where(ua => ua.SysUserId == userId).Select(ua => ua.AreaCode).ToListAsync();
}
public async Task GrantData(UpdateUserInput input)
@@ -56,7 +56,7 @@ namespace Ewide.Core.Service.User
new SysUserArea
{
SysUserId = input.Id,
AreaNumberCode = u
AreaCode = u
}.Insert();
});
}

View File

@@ -56,7 +56,7 @@ namespace Ewide.Core.Service
new SysUserArea
{
SysUserId = input.Id,
AreaNumberCode = u
AreaCode = u
}.Insert();
});
@@ -70,12 +70,12 @@ namespace Ewide.Core.Service
/// <returns></returns>
public async Task<List<string>> GetUserDataScopeIdList(string userId)
{
var areaList = await _sysUserAreaRep.DetachedEntities.Where(u => u.SysUserId == userId).Select(u => u.AreaNumberCode).ToListAsync();
var areaList = await _sysUserAreaRep.DetachedEntities.Where(u => u.SysUserId == userId).Select(u => u.AreaCode).ToListAsync();
//用户自定义的区域权限所对应的全部组织机构id
List<string> areaDataScopeIdList = new List<string>();
foreach (var areaNumberCode in areaList)
{
areaDataScopeIdList.AddRange(await _sysOrgRep.DetachedEntities.Where(p => p.AreaNumberCode == areaNumberCode).Select(p => p.Id).ToListAsync());
areaDataScopeIdList.AddRange(await _sysOrgRep.DetachedEntities.Where(p => p.AreaCode == areaNumberCode).Select(p => p.Id).ToListAsync());
}
//用户自定义的组织权限
var orgIdList = await _sysUserDataScopeRep.DetachedEntities