From dbde30883895c6047995d84a846c36f79fc0a895 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期五, 22 八月 2025 15:12:08 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.UserServer.Application/Users/Commands/SyncUserCommandHandler.cs | 48 +++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 39 insertions(+), 9 deletions(-) diff --git a/FlexJobApi.UserServer.Application/Users/Commands/SyncUserCommandHandler.cs b/FlexJobApi.UserServer.Application/Users/Commands/SyncUserCommandHandler.cs index 06e9887..1f4906a 100644 --- a/FlexJobApi.UserServer.Application/Users/Commands/SyncUserCommandHandler.cs +++ b/FlexJobApi.UserServer.Application/Users/Commands/SyncUserCommandHandler.cs @@ -9,6 +9,7 @@ using Furion.FriendlyException; using Mapster; using MediatR; +using Microsoft.AspNetCore.Components.Forms; using Microsoft.AspNetCore.Identity; using Microsoft.EntityFrameworkCore; using System; @@ -24,15 +25,19 @@ /// 鍚屾鐢ㄦ埛鍛戒护澶勭悊鍣� /// </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> @@ -45,11 +50,33 @@ { var enterprise = await repEnterprise.AsQueryable() .Include(it => it.EnterpriseAuth) + .Include(it => it.ElectronSignSettings) .Where(it => it.SocietyCreditCode == request.Enterprise.SocietyCreditCode) .FirstOrDefaultAsync(cancellationToken); + + var add = false; if (enterprise == null) { + add = true; enterprise = new Enterprise(); + enterprise.Id = IDGen.NextID(); + 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(); + } + if (request.Enterprise.EnterpriseAuth == null) + { + request.Enterprise.EnterpriseAuth = new SyncEnterpriseUserCommandEnterpriseAuth(); } request.Enterprise.Adapt(enterprise); enterprise.LicenseImage = GetOssUrl(enterprise.LicenseImage, request.Enterprise.LicenseImage); @@ -75,21 +102,19 @@ enterprise.EnterpriseAuth.LicenseImage = enterprise.LicenseImage; enterprise.EnterpriseAuth.LegalPerson = enterprise.LegalPerson; enterprise.EnterpriseAuth.LegalIdentity = enterprise.LegalIdentity; - enterprise.EnterpriseAuth.IdentityImg = GetOssUrl(enterprise.EnterpriseAuth.IdentityImg, request.Enterprise.EnterpriseAuth.IdentityImg); - enterprise.EnterpriseAuth.IdentityBackImg = GetOssUrl(enterprise.EnterpriseAuth.IdentityBackImg, request.Enterprise.EnterpriseAuth.IdentityBackImg); - enterprise.EnterpriseAuth.BankCardImg = GetOssUrl(enterprise.EnterpriseAuth.BankCardImg, request.Enterprise.EnterpriseAuth.BankCardImg); - - if (enterprise.Id == Guid.Empty) - await repEnterprise.InsertAsync(enterprise); - else - await repEnterprise.UpdateAsync(enterprise); + if (request.Enterprise.EnterpriseAuth != null) + { + enterprise.EnterpriseAuth.IdentityImg = GetOssUrl(enterprise.EnterpriseAuth.IdentityImg, request.Enterprise.EnterpriseAuth.IdentityImg); + enterprise.EnterpriseAuth.IdentityBackImg = GetOssUrl(enterprise.EnterpriseAuth.IdentityBackImg, request.Enterprise.EnterpriseAuth.IdentityBackImg); + enterprise.EnterpriseAuth.BankCardImg = GetOssUrl(enterprise.EnterpriseAuth.BankCardImg, request.Enterprise.EnterpriseAuth.BankCardImg); + } if (enterprise.EnterpriseAuth.ElectronSignEnterpriseId == null) { var resultRegOrUpdateUser = await new RegOrUpdateUserInput { OutUserId = enterprise.Id.ToString(), - UserType = EnumElectronSignUserType.Personal, + UserType = EnumElectronSignUserType.Company, EnterpriseName = enterprise.EnterpriseName, SocietyCreditCode = enterprise.SocietyCreditCode, Name = enterprise.EnterpriseAuth.Name ?? enterprise.Contacts, @@ -137,6 +162,11 @@ enterprise.EnterpriseAuth.CertAccount = resultReal.Result.CertAccount; } + if (add) + await repEnterprise.InsertNowAsync(enterprise); + else + await repEnterprise.UpdateNowAsync(enterprise); + var user = await repUser.AsQueryable() .Include(it => it.UserRoles) .Where(it => it.Type == EnumUserType.Enterprise && it.DataSource == request.DataSource && it.DataSourceId == request.DataSourceId) -- Gitblit v1.9.1