diff --git a/Src/Dlhis.Entity/Sys/Entities/DataPermissionEntity.cs b/Src/Dlhis.Entity/Sys/Entities/DataPermissionEntity.cs index 803502d0..0980fd61 100644 --- a/Src/Dlhis.Entity/Sys/Entities/DataPermissionEntity.cs +++ b/Src/Dlhis.Entity/Sys/Entities/DataPermissionEntity.cs @@ -1,17 +1,27 @@ +using Dlhis.Entity.Device.Enums; using Dlhis.Entity.Sys.Enums; using Kurisu.AspNetCore.DataAccess.SqlSugar; using SqlSugar; +using SqlSugar.DbConvert; namespace Dlhis.Entity.Sys.Entities; [SugarTable(TableName = "DataPermissions")] public class DataPermissionEntity : SugarBaseEntity { + [SugarColumn(IsNullable = false, ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert))] public AssignTypeEnumType AssignType { get; set; } + [SugarColumn(IsNullable = false)] public string AssignValue { get; set; } + [SugarColumn(IsNullable = false, ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert))] public DeviceAssignmentTypeEnumType UniqueType { get; set; } + [SugarColumn(IsNullable = false)] public Guid UniqueValue { get; set; } + + + [SugarColumn(IsNullable = false, ColumnDataType = "varchar(50)", SqlParameterDbType = typeof(EnumToStringConvert))] + public DeviceTypeEnumType DeviceType { get; set; } } \ No newline at end of file diff --git a/Src/Dlhis.Sys/DataPermission/Controllers/DataPermissionsController.cs b/Src/Dlhis.Sys/DataPermission/Controllers/DataPermissionsController.cs index 5469b7b6..2f7ed8cd 100644 --- a/Src/Dlhis.Sys/DataPermission/Controllers/DataPermissionsController.cs +++ b/Src/Dlhis.Sys/DataPermission/Controllers/DataPermissionsController.cs @@ -1,4 +1,5 @@ using System.ComponentModel.DataAnnotations; +using Dlhis.Entity.Device.Enums; using Dlhis.Entity.Sys.Enums; using Dlhis.Sys.DataPermission.Request; using Dlhis.Sys.DataPermission.Services; @@ -28,10 +29,12 @@ public class DataPermissionsController : ControllerBase await _dataPermissionService.SaveAsync(request); } - + [HttpGet("assignments")] - public async Task> GetAssignmentsAsync(string assignValue, [EnumDataType(typeof(DeviceAssignmentTypeEnumType))] DeviceAssignmentTypeEnumType uniqueType) + public async Task> GetAssignmentsAsync(string assignValue, + [EnumDataType(typeof(DeviceAssignmentTypeEnumType))] DeviceAssignmentTypeEnumType uniqueType, + DeviceTypeEnumType type) { - return await _dataPermissionService.GetAssignmentsAsync(assignValue, uniqueType); + return await _dataPermissionService.GetAssignmentsAsync(assignValue, uniqueType, type); } } \ No newline at end of file diff --git a/Src/Dlhis.Sys/DataPermission/Request/DataPermissionSaveRequest.cs b/Src/Dlhis.Sys/DataPermission/Request/DataPermissionSaveRequest.cs index 952deeee..2b1584d3 100644 --- a/Src/Dlhis.Sys/DataPermission/Request/DataPermissionSaveRequest.cs +++ b/Src/Dlhis.Sys/DataPermission/Request/DataPermissionSaveRequest.cs @@ -1,4 +1,5 @@ using System.ComponentModel.DataAnnotations; +using Dlhis.Entity.Device.Enums; using Dlhis.Entity.Sys.Enums; namespace Dlhis.Sys.DataPermission.Request; @@ -13,6 +14,9 @@ public class DataPermissionSaveRequest : IValidatableObject public List Codes { get; set; } = new(); + [EnumDataType(typeof(DeviceTypeEnumType))] + public DeviceTypeEnumType Type { get; set; } + public IEnumerable Validate(ValidationContext validationContext) { diff --git a/Src/Dlhis.Sys/DataPermission/Services/IDataPermissionService.cs b/Src/Dlhis.Sys/DataPermission/Services/IDataPermissionService.cs index fcfdb329..b89d6542 100644 --- a/Src/Dlhis.Sys/DataPermission/Services/IDataPermissionService.cs +++ b/Src/Dlhis.Sys/DataPermission/Services/IDataPermissionService.cs @@ -1,3 +1,4 @@ +using Dlhis.Entity.Device.Enums; using Dlhis.Entity.Sys.Enums; using Dlhis.Sys.DataPermission.Request; @@ -7,5 +8,5 @@ public interface IDataPermissionService : IScopeDependency { Task SaveAsync(DataPermissionSaveRequest request); - Task> GetAssignmentsAsync(string assignValue, DeviceAssignmentTypeEnumType uniqueType); + Task> GetAssignmentsAsync(string assignValue, DeviceAssignmentTypeEnumType uniqueType, DeviceTypeEnumType type); } \ No newline at end of file diff --git a/Src/Dlhis.Sys/DataPermission/Services/Implements/DataPermissionService.cs b/Src/Dlhis.Sys/DataPermission/Services/Implements/DataPermissionService.cs index 662da832..fddd3b90 100644 --- a/Src/Dlhis.Sys/DataPermission/Services/Implements/DataPermissionService.cs +++ b/Src/Dlhis.Sys/DataPermission/Services/Implements/DataPermissionService.cs @@ -1,3 +1,4 @@ +using Dlhis.Entity.Device.Enums; using Dlhis.Entity.Sys.Entities; using Dlhis.Entity.Sys.Enums; using Dlhis.Sys.DataPermission.Request; @@ -21,6 +22,7 @@ public class DataPermissionService : IDataPermissionService .Where(x => x.AssignValue == request.AssignValue) .Where(x => x.AssignType == AssignTypeEnumType.User) .Where(x => x.UniqueType == request.UniqueType) + .Where(x => x.DeviceType == request.Type) .ToListAsync(); await _dbContext.DeleteReallyAsync(data); @@ -34,12 +36,13 @@ public class DataPermissionService : IDataPermissionService }).ToList()); } - public async Task> GetAssignmentsAsync(string assignValue, DeviceAssignmentTypeEnumType uniqueType) + public async Task> GetAssignmentsAsync(string assignValue, DeviceAssignmentTypeEnumType uniqueType, DeviceTypeEnumType type) { return await _dbContext.Queryable() .Where(x => x.AssignValue == assignValue) .Where(x => x.AssignType == AssignTypeEnumType.User) .Where(x => x.UniqueType == uniqueType) + .Where(x => x.DeviceType == type) .Select(x => x.UniqueValue) .ToListAsync(); }