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

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

diff --git a/FlexJobApi.UserServer.Application/Users/Commands/SyncUserCommandHandler.cs b/FlexJobApi.UserServer.Application/Users/Commands/SyncUserCommandHandler.cs
index 06e9887..dfd53dc 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);

--
Gitblit v1.9.1