fix 转成接口方法
This commit is contained in:
@@ -29,4 +29,12 @@ public interface IDevicePermissionService : IScopeDependency
|
|||||||
/// <param name="userNos"></param>
|
/// <param name="userNos"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
Task GenerateDeviceTasksAsync(Func<Task> func, List<string> userNos);
|
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>
|
||||||
/// 获取用户所有设备权限
|
/// 获取用户所有设备权限
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="userNo"></param>
|
/// <param name="userNo"></param>
|
||||||
/// <returns></returns>
|
/// <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 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();
|
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();
|
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