35 lines
1.2 KiB
C#
35 lines
1.2 KiB
C#
using Dlhis.Basic.Utils;
|
|
using Dlhis.Entity.Basic.Entity;
|
|
using Dlhis.Entity.Device.Enums;
|
|
|
|
namespace Dlhis.Basic.Device.Services.Implements.PermissionAnalyze;
|
|
|
|
[Service(PermissionAnalyzeConstants.Group)]
|
|
public class GroupPermissionAnalyzeService : BasePermissionAnalyzeService
|
|
{
|
|
|
|
/// <inheritdoc />
|
|
public GroupPermissionAnalyzeService(IServiceProvider serviceProvider) : base(serviceProvider)
|
|
{
|
|
}
|
|
|
|
/// <inheritdoc />
|
|
protected override async Task<List<string>> GetGainfoNosAsync(string assignValue, DeviceTypeEnumType deviceType)
|
|
{
|
|
var code = Guid.Parse(assignValue);
|
|
|
|
var gainfoGroups = await DbContext.Queryable<GainfoGroupEntity>().ToListAsync();
|
|
var gainfoGroupCodes = RecursionHelper.HandlerGainfoGroupNextCodes(code, gainfoGroups);
|
|
|
|
var gainfoUserNos = await DbContext.Queryable<GainfoGroupRelationshipEntity>()
|
|
.Where(x => gainfoGroupCodes.Contains(x.GroupCode))
|
|
.Select(x => x.UserNo)
|
|
.Distinct()
|
|
.ToListAsync();
|
|
|
|
return await DbContext.Queryable<GainfoEntity>()
|
|
.Where(x => gainfoUserNos.Contains(x.No))
|
|
.Select(x => x.No)
|
|
.ToListAsync();
|
|
}
|
|
} |