| | |
| | | using Furion.FriendlyException; |
| | | using Mapster; |
| | | using MediatR; |
| | | using Microsoft.AspNetCore.Components.Forms; |
| | | using Microsoft.AspNetCore.Identity; |
| | | using Microsoft.EntityFrameworkCore; |
| | | using System; |
| | |
| | | /// 同步用户命令处理器 |
| | | /// </summary> |
| | | public class SyncUserCommandHandler( |
| | | IMediator mediator, |
| | | IRepository<User> repUser, |
| | | IRepository<Enterprise> repEnterprise, |
| | | IRepository<ElectronSignSetting> repElectronSignSetting, |
| | | IRepository<Role> repRole |
| | | ) : |
| | | IRequestHandler<SyncEnterpriseUserCommand, Guid>, |
| | | IRequestHandler<SyncOperationUserCommand, Guid> |
| | | { |
| | | private readonly IMediator mediator = mediator; |
| | | private readonly IRepository<User> repUser = repUser; |
| | | private readonly IRepository<Enterprise> repEnterprise = repEnterprise; |
| | | private readonly IRepository<ElectronSignSetting> repElectronSignSetting = repElectronSignSetting; |
| | | private readonly IRepository<Role> repRole = repRole; |
| | | |
| | | /// <summary> |
| | |
| | | { |
| | | var enterprise = await repEnterprise.AsQueryable() |
| | | .Include(it => it.EnterpriseAuth) |
| | | .Include(it => it.ElectronSignSettings) |
| | | .Where(it => it.SocietyCreditCode == request.Enterprise.SocietyCreditCode) |
| | | .FirstOrDefaultAsync(cancellationToken); |
| | | |
| | | if (enterprise == null) |
| | | { |
| | | enterprise = new Enterprise(); |
| | | if (request.Enterprise.ElectronSignAccesses.IsNotNull()) |
| | | { |
| | | request.Enterprise.ElectronSignAccesses = await repElectronSignSetting.AsQueryable().AsNoTracking() |
| | | .Where(it => request.Enterprise.ElectronSignAccesses.Contains(it.Access) && !it.IsDisabled) |
| | | .Select(it => it.Access) |
| | | .ToListAsync(); |
| | | } |
| | | enterprise.ElectronSignSettings = request.Enterprise.ElectronSignAccesses |
| | | .Select(it => new EnterpriseElectronSignSetting |
| | | { |
| | | ElectronSignAccess = it |
| | | }) |
| | | .ToList(); |
| | | } |
| | | request.Enterprise.Adapt(enterprise); |
| | | enterprise.LicenseImage = GetOssUrl(enterprise.LicenseImage, request.Enterprise.LicenseImage); |