From cffb6d2f0ca6278d7f9b6c2ecbade7f32921ffe6 Mon Sep 17 00:00:00 2001 From: zhangqi <2794379662@qq.com> Date: Tue, 27 Apr 2021 17:44:55 +0800 Subject: [PATCH] =?UTF-8?q?update:=E8=A7=92=E8=89=B2=E6=8E=88=E6=9D=83?= =?UTF-8?q?=E7=BB=84=E7=BB=87=E6=95=B0=E6=8D=AE=E5=90=8C=E6=97=B6=E5=8F=AF?= =?UTF-8?q?=E4=BB=A5=E6=8E=88=E6=9D=83=E5=8C=BA=E5=9F=9F=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Api/Ewide.Core/Service/Role/Dto/RoleInput.cs | 4 ++++ Api/Ewide.Core/Service/Role/ISysRoleAreaService.cs | 2 +- Api/Ewide.Core/Service/Role/SysRoleAreaService.cs | 2 +- .../Service/Role/SysRoleDataScopeService.cs | 14 +++++++++++--- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/Api/Ewide.Core/Service/Role/Dto/RoleInput.cs b/Api/Ewide.Core/Service/Role/Dto/RoleInput.cs index b15ac48..0a0e7c5 100644 --- a/Api/Ewide.Core/Service/Role/Dto/RoleInput.cs +++ b/Api/Ewide.Core/Service/Role/Dto/RoleInput.cs @@ -83,5 +83,9 @@ namespace Ewide.Core.Service public class GrantRoleDataInput : GrantRoleMenuInput { + } + public class GrantAreaDataInput : GrantRoleMenuInput + { + } } diff --git a/Api/Ewide.Core/Service/Role/ISysRoleAreaService.cs b/Api/Ewide.Core/Service/Role/ISysRoleAreaService.cs index 7dadd5c..462eb2a 100644 --- a/Api/Ewide.Core/Service/Role/ISysRoleAreaService.cs +++ b/Api/Ewide.Core/Service/Role/ISysRoleAreaService.cs @@ -11,6 +11,6 @@ namespace Ewide.Core.Service.Role Task DeleteRoleAreaListByAreaCodeList(List areaCodeList); Task DeleteRoleAreaListByRoleId(string roleId); Task> GetRoleAreaCodeList(List roleIdList); - Task GrantArea(UpdateRoleInput input); + Task GrantArea(GrantAreaDataInput input); } } diff --git a/Api/Ewide.Core/Service/Role/SysRoleAreaService.cs b/Api/Ewide.Core/Service/Role/SysRoleAreaService.cs index 6effa1a..a452eac 100644 --- a/Api/Ewide.Core/Service/Role/SysRoleAreaService.cs +++ b/Api/Ewide.Core/Service/Role/SysRoleAreaService.cs @@ -45,7 +45,7 @@ namespace Ewide.Core.Service.Role } - public async Task GrantArea(UpdateRoleInput input) + public async Task GrantArea(GrantAreaDataInput input) { var dataScopes = await _sysRoleAreaRep.Where(u => u.SysRoleId == input.Id).ToListAsync(); dataScopes.ForEach(u => diff --git a/Api/Ewide.Core/Service/Role/SysRoleDataScopeService.cs b/Api/Ewide.Core/Service/Role/SysRoleDataScopeService.cs index 70d101d..8f56f61 100644 --- a/Api/Ewide.Core/Service/Role/SysRoleDataScopeService.cs +++ b/Api/Ewide.Core/Service/Role/SysRoleDataScopeService.cs @@ -1,6 +1,8 @@ -using Furion.DatabaseAccessor; +using Ewide.Core.Service.Role; +using Furion.DatabaseAccessor; using Furion.DatabaseAccessor.Extensions; using Furion.DependencyInjection; +using Mapster; using Microsoft.EntityFrameworkCore; using System.Collections.Generic; using System.Linq; @@ -14,10 +16,11 @@ namespace Ewide.Core.Service public class SysRoleDataScopeService : ISysRoleDataScopeService, ITransient { private readonly IRepository _sysRoleDataScopeRep; // 角色数据范围表仓储 - - public SysRoleDataScopeService(IRepository sysRoleDataScopeRep) + private readonly ISysRoleAreaService _sysRoleAreaService; + public SysRoleDataScopeService(IRepository sysRoleDataScopeRep, ISysRoleAreaService sysRoleAreaService) { _sysRoleDataScopeRep = sysRoleDataScopeRep; + _sysRoleAreaService = sysRoleAreaService; } /// @@ -28,6 +31,11 @@ namespace Ewide.Core.Service [UnitOfWork] public async Task GrantDataScope(GrantRoleDataInput input) { + if (new[] { (int)DataScopeType.AREA, (int)DataScopeType.AREA_WITH_CHILD }.Contains(input.DataScopeType)) + { + await _sysRoleAreaService.GrantArea(input.Adapt()); + return; + } var dataScopes = await _sysRoleDataScopeRep.DetachedEntities.Where(u => u.SysRoleId == input.Id).ToListAsync(); dataScopes.ForEach(u => {