From d9cc4b2a25ca241eec1bb7c82b1cca5f3fee9e0b Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期五, 22 八月 2025 14:45:13 +0800
Subject: [PATCH] feat:开发

---
 FlexJobApi.UserServer.Application/Users/Commands/SyncUserCommandHandler.cs |   31 +++++++++++++++++++++++++++----
 1 files changed, 27 insertions(+), 4 deletions(-)

diff --git a/FlexJobApi.UserServer.Application/Users/Commands/SyncUserCommandHandler.cs b/FlexJobApi.UserServer.Application/Users/Commands/SyncUserCommandHandler.cs
index 06e9887..1d2aa02 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,26 @@
         {
             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);
@@ -75,9 +95,12 @@
             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 (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.Id == Guid.Empty)
                 await repEnterprise.InsertAsync(enterprise);
@@ -89,7 +112,7 @@
                 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,

--
Gitblit v1.9.1