Files
jinko.yikatong/Src/Dlhis.Basic/Device/Services/Implements/DevicePermissionService.cs

51 lines
1.7 KiB
C#

using Dlhis.Basic.Device.Request;
using Dlhis.Entity.Sys.Entities;
using Dlhis.Entity.Sys.Enums;
using Kurisu.SqlSugar.Services;
namespace Dlhis.Basic.Device.Services.Implements;
public class DevicePermissionService : IDevicePermissionService
{
private readonly IDbContext _dbContext;
public DevicePermissionService(IDbContext dbContext)
{
_dbContext = dbContext;
}
public async Task AssignmentAsync(List<DevicePermissionSaveReuqest> reuqests)
{
foreach (var item in reuqests)
{
var permissions = await _dbContext.Queryable<DevicePermissionEntity>()
.Where(x => x.UniqueType == item.UniqueType)
.Where(x => x.UniqueValue == item.UniqueValue)
.Where(x => x.UserNo == item.UserNo)
.ToListAsync();
//todo 差异数据
await _dbContext.Client.Deleteable(permissions).ExecuteCommandAsync();
await _dbContext.InsertAsync(new DevicePermissionEntity
{
UserNo = item.UserNo,
UniqueType = item.UniqueType,
UniqueValue = item.UniqueValue,
});
}
}
public async Task<List<Guid>> GetAssignmentsAsync(string userNo, DeviceAssignmentTypeEnumType uniqueType, Guid? uniqueValue)
{
var assignments = await _dbContext.Queryable<DevicePermissionEntity>()
.Where(x => x.UniqueType == uniqueType)
.WhereIF(uniqueValue.HasValue, x => x.UniqueValue == uniqueValue)
.Where(x => x.UserNo == userNo)
.Select(x => x.UniqueValue)
.ToListAsync();
return assignments;
}
}