fix 转成接口方法
This commit is contained in:
@@ -29,4 +29,12 @@ public interface IDevicePermissionService : IScopeDependency
|
||||
/// <param name="userNos"></param>
|
||||
/// <returns></returns>
|
||||
Task GenerateDeviceTasksAsync(Func<Task> func, List<string> userNos);
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取用户所有设备权限
|
||||
/// </summary>
|
||||
/// <param name="userNo"></param>
|
||||
/// <returns></returns>
|
||||
Task<List<Guid>> GetAssignDeviceCodesAsync(string userNo);
|
||||
}
|
||||
|
||||
@@ -158,40 +158,12 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
}
|
||||
|
||||
|
||||
//************************************************ help methods *******************************************************
|
||||
|
||||
private async Task<List<string>> GetPermissionUserNosAsync()
|
||||
{
|
||||
var permissions = await _dbContext.Queryable<DevicePermissionEntity>().ToListAsync();
|
||||
//User
|
||||
var userNos = permissions.Where(x => x.AssignType == AssignTypeEnumType.User).Select(x => x.AssignValue).ToList();
|
||||
|
||||
//Group
|
||||
var groupCode = permissions.Where(x => x.AssignType == AssignTypeEnumType.Group).Select(x => Guid.Parse(x.AssignValue)).ToList();
|
||||
var userNosByGroup = await _dbContext.Queryable<GainfoGroupRelationshipEntity>()
|
||||
.Where(x => groupCode.Contains(x.GroupCode))
|
||||
.Select(x => x.UserNo)
|
||||
.ToListAsync();
|
||||
|
||||
//Department
|
||||
var departmentNos = permissions.Where(x => x.AssignType == AssignTypeEnumType.Department).Select(x => x.AssignValue).ToList();
|
||||
var userNosByDepartment = await _dbContext.Queryable<GainfoEntity>().Where(x => departmentNos.Contains(x.DepartmentNo)).Select(x => x.No).ToListAsync();
|
||||
|
||||
//Tenant
|
||||
var tenants = permissions.Where(x => x.AssignType == AssignTypeEnumType.Tenant).Select(x => x.AssignValue).ToList();
|
||||
var userNosByWerk = await _dbContext.Queryable<GainfoEntity>().Where(x => tenants.Contains(x.Werks)).Select(x => x.No).ToListAsync();
|
||||
|
||||
|
||||
return userNos.Concat(userNosByGroup).Concat(userNosByDepartment).Concat(userNosByWerk).ToList();
|
||||
}
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 获取用户所有设备权限
|
||||
/// </summary>
|
||||
/// <param name="userNo"></param>
|
||||
/// <returns></returns>
|
||||
private async Task<List<Guid>> GetAssignDeviceCodesAsync(string userNo)
|
||||
public async Task<List<Guid>> GetAssignDeviceCodesAsync(string userNo)
|
||||
{
|
||||
var gainfo = await _dbContext.Queryable<GainfoEntity>().Where(x => x.No == userNo).SingleAsync();
|
||||
var gainfoGroups = await _dbContext.Queryable<GainfoGroupRelationshipEntity>().Where(x => x.UserNo == userNo).Select(x => x.GroupCode).ToListAsync();
|
||||
@@ -227,4 +199,37 @@ public class DevicePermissionService : IDevicePermissionService
|
||||
|
||||
return deviceCodes.Distinct().ToList();
|
||||
}
|
||||
|
||||
|
||||
//************************************************ help methods *******************************************************
|
||||
|
||||
/// <summary>
|
||||
/// 获取当前基地有权限的用户
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
private async Task<List<string>> GetPermissionUserNosAsync()
|
||||
{
|
||||
var permissions = await _dbContext.Queryable<DevicePermissionEntity>().ToListAsync();
|
||||
//User
|
||||
var userNos = permissions.Where(x => x.AssignType == AssignTypeEnumType.User).Select(x => x.AssignValue).ToList();
|
||||
|
||||
//Group
|
||||
var groupCode = permissions.Where(x => x.AssignType == AssignTypeEnumType.Group).Select(x => Guid.Parse(x.AssignValue)).ToList();
|
||||
var userNosByGroup = await _dbContext.Queryable<GainfoGroupRelationshipEntity>()
|
||||
.Where(x => groupCode.Contains(x.GroupCode))
|
||||
.Select(x => x.UserNo)
|
||||
.ToListAsync();
|
||||
|
||||
//Department
|
||||
var departmentNos = permissions.Where(x => x.AssignType == AssignTypeEnumType.Department).Select(x => x.AssignValue).ToList();
|
||||
var userNosByDepartment = await _dbContext.Queryable<GainfoEntity>().Where(x => departmentNos.Contains(x.DepartmentNo)).Select(x => x.No).ToListAsync();
|
||||
|
||||
//Tenant
|
||||
var tenants = permissions.Where(x => x.AssignType == AssignTypeEnumType.Tenant).Select(x => x.AssignValue).ToList();
|
||||
var userNosByWerk = await _dbContext.Queryable<GainfoEntity>().Where(x => tenants.Contains(x.Werks)).Select(x => x.No).ToListAsync();
|
||||
|
||||
|
||||
return userNos.Concat(userNosByGroup).Concat(userNosByDepartment).Concat(userNosByWerk).ToList();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user