From df19a6d58ef1d94e11c4dbfd76074e0e54d3d32c Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期五, 05 九月 2025 10:59:32 +0800
Subject: [PATCH] feat:开发

---
 FlexJobApi.UserServer.Application/Enterprises/Commands/EnterpriseCommandHandler.cs |   27 +++++++++++++++++++++++++--
 1 files changed, 25 insertions(+), 2 deletions(-)

diff --git a/FlexJobApi.UserServer.Application/Enterprises/Commands/EnterpriseCommandHandler.cs b/FlexJobApi.UserServer.Application/Enterprises/Commands/EnterpriseCommandHandler.cs
index 6d83b1b..e661f83 100644
--- a/FlexJobApi.UserServer.Application/Enterprises/Commands/EnterpriseCommandHandler.cs
+++ b/FlexJobApi.UserServer.Application/Enterprises/Commands/EnterpriseCommandHandler.cs
@@ -17,6 +17,7 @@
     /// 浼佷笟鍛戒护澶勭悊鍣�
     /// </summary>
     public class EnterpriseCommandHandler(
+            IMediator mediator,
             IRepository<Enterprise> rep,
             IRepository<User> repUser
         ) :
@@ -25,6 +26,7 @@
         IRequestHandler<SetEnterpriseSmsSettingCommand, Guid>
 
     {
+        private readonly IMediator mediator = mediator;
         private readonly IRepository<Enterprise> rep = rep;
         private readonly IRepository<User> repUser = repUser;
 
@@ -93,9 +95,30 @@
         /// <returns></returns>
         public async Task<Guid> Handle(SetEnterpriseElectronSignSettingCommand request, CancellationToken cancellationToken)
         {
-            var entity = await rep.AsQueryable().FirstOrDefaultAsync(it => it.Id == request.Id, cancellationToken);
+            var entity = await rep.AsQueryable()
+                .Include(it => it.ElectronSignSettings)
+                .FirstOrDefaultAsync(it => it.Id == request.Id, cancellationToken);
             if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "浼佷笟");
-            request.Adapt(entity);
+
+            await mediator.Send(new CheckElectronSignAccessEnabledsCommand
+            {
+                Accesses = request.ElectronSignAccesses
+            }, cancellationToken);
+
+            entity.ElectronSignSettings = request.ElectronSignAccesses
+                .Select(it =>
+                {
+                    var setting = entity.ElectronSignSettings.FirstOrDefault(s => s.ElectronSignAccess == it);
+                    if (setting == null)
+                    {
+                        setting = new EnterpriseElectronSignSetting
+                        {
+                            ElectronSignAccess = it
+                        };
+                    }
+                    return setting;
+                })
+                .ToList();
             await rep.UpdateAsync(entity);
             return entity.Id;
         }

--
Gitblit v1.9.1