From e4d0e327eb50a68366faa75988507c341088a654 Mon Sep 17 00:00:00 2001 From: liguoyang Date: Tue, 6 Aug 2024 13:58:35 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E5=A2=9E=E5=8A=A0=E4=BB=BB=E5=8A=A1?= =?UTF-8?q?=E8=AF=A6=E6=83=85=E8=BF=94=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DevicePermissionsController.cs | 4 +-- .../Request/DevicePermissionSaveRequest.cs | 5 ++-- .../DevicePermissionAssignResponse.cs | 14 +++++++++++ .../Services/IDevicePermissionService.cs | 4 +-- .../Implements/DevicePermissionService.cs | 25 +++++++++---------- 5 files changed, 33 insertions(+), 19 deletions(-) create mode 100644 Src/Dlhis.Basic/Device/Response/DevicePermissionAssignResponse.cs diff --git a/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs b/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs index b93702ea..65682aa1 100644 --- a/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs +++ b/Src/Dlhis.Basic/Device/Controllers/DevicePermissionsController.cs @@ -32,9 +32,9 @@ public class DevicePermissionsController : ControllerBase [AssignPermissionLimit] [Transactional] [CrossTenant] - public async Task AssignAsync(DevicePermissionSaveRequest request) + public async Task AssignAsync(DevicePermissionSaveRequest request) { - await _devicePermissionService.AssignAsync(request); + return await _devicePermissionService.AssignAsync(request); } /// diff --git a/Src/Dlhis.Basic/Device/Request/DevicePermissionSaveRequest.cs b/Src/Dlhis.Basic/Device/Request/DevicePermissionSaveRequest.cs index 604bb6e1..572f9c30 100644 --- a/Src/Dlhis.Basic/Device/Request/DevicePermissionSaveRequest.cs +++ b/Src/Dlhis.Basic/Device/Request/DevicePermissionSaveRequest.cs @@ -37,7 +37,7 @@ public class DevicePermissionSaveRequest : IValidatableObject /// AssignType == AssignTypeEnumType.Department 需要传入 /// public string TenantId { get; set; } - + /// /// 设备类型 /// @@ -53,7 +53,8 @@ public class DevicePermissionSaveRequest : IValidatableObject yield return new ValidationResult("请明确具体的厂区", new[] { nameof(TenantId) }); } } - else if (AssignType == AssignTypeEnumType.Role) + + if (AssignType == AssignTypeEnumType.Role) { yield return new ValidationResult("暂不支持角色分配", new[] { nameof(AssignType) }); } diff --git a/Src/Dlhis.Basic/Device/Response/DevicePermissionAssignResponse.cs b/Src/Dlhis.Basic/Device/Response/DevicePermissionAssignResponse.cs new file mode 100644 index 00000000..01c0585a --- /dev/null +++ b/Src/Dlhis.Basic/Device/Response/DevicePermissionAssignResponse.cs @@ -0,0 +1,14 @@ +namespace Dlhis.Basic.Device.Response; + +public class DevicePermissionAssignResponse +{ + /// + /// 添加数量 + /// + public int AddCount { get; set; } + + /// + /// 删除数量 + /// + public int DeleteCount { get; set; } +} \ No newline at end of file diff --git a/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs index ee0d1362..3f997911 100644 --- a/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs +++ b/Src/Dlhis.Basic/Device/Services/IDevicePermissionService.cs @@ -14,7 +14,7 @@ public interface IDevicePermissionService : IScopeDependency /// /// /// - Task AssignAsync(DevicePermissionSaveRequest request); + Task AssignAsync(DevicePermissionSaveRequest request); /// /// 分配到设备 @@ -38,7 +38,7 @@ public interface IDevicePermissionService : IScopeDependency /// /// /// - Task GenerateDeviceTasksAsync(Func func, List userNos); + Task GenerateDeviceTasksAsync(Func func, List userNos); /// diff --git a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs index 7059109b..1ed14e4e 100644 --- a/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs +++ b/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs @@ -25,21 +25,19 @@ public class DevicePermissionService : IDevicePermissionService private readonly IMyDataPermissionService _myDataPermissionService; private readonly ITenantApi _tenantApi; private readonly ICurrentUser _currentUser; - private readonly ILogger _logger; public DevicePermissionService(IDbContext dbContext, IMyDataPermissionService myDataPermissionService, ITenantApi tenantApi, - ICurrentUser currentUser, ILogger logger) + ICurrentUser currentUser) { _dbContext = dbContext; _myDataPermissionService = myDataPermissionService; _tenantApi = tenantApi; _currentUser = currentUser; - _logger = logger; } - public async Task AssignAsync(DevicePermissionSaveRequest request) + public async Task AssignAsync(DevicePermissionSaveRequest request) { - await GenerateDeviceTasksAsync(async () => + return await GenerateDeviceTasksAsync(async () => { request.AssignValue = request.AssignType == AssignTypeEnumType.Department ? request.TenantId + ":" + request.AssignValue : request.AssignValue; var currentTenantId = _currentUser.GetStringTenantId(); @@ -160,16 +158,13 @@ public class DevicePermissionService : IDevicePermissionService }).ToListAsync(); } - public async Task GenerateDeviceTasksAsync(Func func, List userNos) + public async Task GenerateDeviceTasksAsync(Func func, List userNos) { - var tenantId = _currentUser.GetStringTenantId(); - //获取所有人的权限 if (userNos.IsEmpty()) userNos = await GetPermissionUserNosAsync(); var before = await GetAssignDeviceCodesInternalAsync(userNos); - _logger.LogInformation("{tenant}任务前置人数{count}", tenantId, userNos.Count); //业务处理 _dbContext.Client.QueryFilter.Restore(); @@ -182,7 +177,6 @@ public class DevicePermissionService : IDevicePermissionService userNos = userNos.Concat(nextUserNos).Distinct().ToList(); var current = await GetAssignDeviceCodesInternalAsync(userNos); - _logger.LogInformation("{tenant}任务后置人数{count}", tenantId, userNos.Count); var devices = await _dbContext.Queryable().Where(x => x.Enable).ToListAsync(); var waitAddTasks = new List(); @@ -191,9 +185,9 @@ public class DevicePermissionService : IDevicePermissionService foreach (var userNo in userNos) { before.TryGetValue(userNo, out var beforeTenantDeviceCodes); - beforeTenantDeviceCodes ??= new(); + beforeTenantDeviceCodes ??= new List(); current.TryGetValue(userNo, out var currentTenantDeviceCodes); - currentTenantDeviceCodes ??= new(); + currentTenantDeviceCodes ??= new List(); var tenants = new HashSet(); foreach (var item in beforeTenantDeviceCodes) @@ -248,7 +242,6 @@ public class DevicePermissionService : IDevicePermissionService } } - _logger.LogInformation("{tenant}任务产生新增数量{addCount},删除数量:{delteCount}", tenantId, waitAddTasks.Count, waitDeleteTasks.Count); if (waitAddTasks.Any()) { await _dbContext.InsertAsync(waitAddTasks); @@ -258,6 +251,12 @@ public class DevicePermissionService : IDevicePermissionService { await _dbContext.InsertAsync(waitDeleteTasks); } + + return new DevicePermissionAssignResponse + { + AddCount = waitAddTasks.Count, + DeleteCount = waitDeleteTasks.Count + }; } public async Task GetPermissionUsersInfoAsync(List userNos)