feat 增加券导入,获取设备数据权限的人员
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
using Dlhis.Entity.Device.Enums;
|
||||
using Dlhis.Entity.Sys.Enums;
|
||||
using Dlhis.Sys.DataPermission.Request;
|
||||
using Dlhis.Sys.DataPermission.Response;
|
||||
using Dlhis.Sys.DataPermission.Services;
|
||||
using Microsoft.AspNetCore.Authorization;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
@@ -31,10 +32,21 @@ public class DataPermissionsController : ControllerBase
|
||||
|
||||
|
||||
[HttpGet("assignments")]
|
||||
public async Task<List<Guid>> GetAssignmentsAsync(string assignValue,
|
||||
public async Task<List<Guid>> GetAssignmentsAsync(string assignValue,
|
||||
[EnumDataType(typeof(DataPermissionAssignmentEnumType))] DataPermissionAssignmentEnumType uniqueType,
|
||||
DeviceTypeEnumType? type)
|
||||
{
|
||||
return await _dataPermissionService.GetAssignmentsAsync(assignValue, uniqueType, type);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取用户的设备数据权限
|
||||
/// </summary>
|
||||
/// <param name="deviceCode"></param>
|
||||
/// <returns></returns>
|
||||
[HttpGet("userDevicePermissions")]
|
||||
public async Task<List<GainfoResponse>> GetUsersDeviceDataPermissionsAsync(Guid deviceCode)
|
||||
{
|
||||
return await _dataPermissionService.GetUsersDeviceDataPermissionsAsync(deviceCode);
|
||||
}
|
||||
}
|
||||
7
Src/Dlhis.Sys/DataPermission/Response/GainfoResponse.cs
Normal file
7
Src/Dlhis.Sys/DataPermission/Response/GainfoResponse.cs
Normal file
@@ -0,0 +1,7 @@
|
||||
namespace Dlhis.Sys.DataPermission.Response;
|
||||
|
||||
public class GainfoResponse
|
||||
{
|
||||
public string UserCode { get; set; }
|
||||
public string UserName { get; set; }
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
using Dlhis.Entity.Device.Enums;
|
||||
using Dlhis.Entity.Sys.Enums;
|
||||
using Dlhis.Sys.DataPermission.Request;
|
||||
using Dlhis.Sys.DataPermission.Response;
|
||||
|
||||
namespace Dlhis.Sys.DataPermission.Services;
|
||||
|
||||
@@ -9,4 +10,6 @@ public interface IDataPermissionService : IScopeDependency
|
||||
Task SaveAsync(DataPermissionSaveRequest request);
|
||||
|
||||
Task<List<Guid>> GetAssignmentsAsync(string assignValue, DataPermissionAssignmentEnumType uniqueType, DeviceTypeEnumType? type);
|
||||
|
||||
Task<List<GainfoResponse>> GetUsersDeviceDataPermissionsAsync(Guid deviceCode);
|
||||
}
|
||||
@@ -1,7 +1,10 @@
|
||||
using Dlhis.Entity.Basic.Entity;
|
||||
using Dlhis.Entity.Device.Entities;
|
||||
using Dlhis.Entity.Device.Enums;
|
||||
using Dlhis.Entity.Sys.Entities;
|
||||
using Dlhis.Entity.Sys.Enums;
|
||||
using Dlhis.Sys.DataPermission.Request;
|
||||
using Dlhis.Sys.DataPermission.Response;
|
||||
using Kurisu.AspNetCore.DataAccess.SqlSugar.Services;
|
||||
using Kurisu.AspNetCore.Utils.Extensions;
|
||||
|
||||
@@ -25,8 +28,8 @@ public class DataPermissionService : IDataPermissionService
|
||||
.WhereIF(request.Type.HasValue, x => x.DeviceType == request.Type)
|
||||
.ToListAsync();
|
||||
|
||||
//<2F><><EFBFBD><EFBFBD>д<EFBFBD><D0B4>
|
||||
await _dbContext.DeleteReallyAsync(data);
|
||||
|
||||
if (request.Codes.IsPresent())
|
||||
{
|
||||
await _dbContext.InsertAsync(request.Codes.Select(x => new DataPermissionEntity
|
||||
@@ -48,4 +51,30 @@ public class DataPermissionService : IDataPermissionService
|
||||
.Select(x => x.UniqueValue)
|
||||
.ToListAsync();
|
||||
}
|
||||
|
||||
public async Task<List<GainfoResponse>> GetUsersDeviceDataPermissionsAsync(Guid deviceCode)
|
||||
{
|
||||
var deviceGroupCodes = await _dbContext.Queryable<DeviceGroupRelationshipEntity>()
|
||||
.Where(x => x.DeviceCode == deviceCode)
|
||||
.Select(x => x.GroupCode)
|
||||
.Distinct()
|
||||
.ToListAsync();
|
||||
|
||||
var userNos = await _dbContext.Queryable<DataPermissionEntity>()
|
||||
.Where(x => (x.UniqueValue == deviceCode && x.UniqueType == DataPermissionAssignmentEnumType.Device)
|
||||
|| (deviceGroupCodes.Contains(x.UniqueValue) && x.UniqueType == DataPermissionAssignmentEnumType.Group)
|
||||
)
|
||||
.Select(x => x.AssignValue)
|
||||
.ToListAsync();
|
||||
|
||||
|
||||
return await _dbContext.Queryable<GainfoEntity>()
|
||||
.Where(x => userNos.Contains(x.No))
|
||||
.Select(x => new GainfoResponse
|
||||
{
|
||||
UserCode = x.Code,
|
||||
UserName = x.Name
|
||||
})
|
||||
.ToListAsync();
|
||||
}
|
||||
}
|
||||
@@ -21,7 +21,6 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Folder Include="DataPermission\Response\" />
|
||||
<Folder Include="Server\Request\" />
|
||||
<Folder Include="Server\Response\" />
|
||||
<Folder Include="Server\Services\Implements\" />
|
||||
|
||||
Reference in New Issue
Block a user