From 5c45bc53e2c18e45130c21048df4af4896455c6d Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期五, 12 九月 2025 15:58:48 +0800
Subject: [PATCH] feat:开发

---
 FlexJobApi.UserServer.Application/Enterprises/Commands/EnterpriseCommandHandler.cs |   33 ++++++++++++++++++++++++++++-----
 1 files changed, 28 insertions(+), 5 deletions(-)

diff --git a/FlexJobApi.UserServer.Application/Enterprises/Commands/EnterpriseCommandHandler.cs b/FlexJobApi.UserServer.Application/Enterprises/Commands/EnterpriseCommandHandler.cs
index a0df0fc..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;
 
@@ -72,7 +74,7 @@
             }
             else
             {
-                if (user.EnterpriseId != entity.Id) throw Oops.Oh(EnumErrorCodeType.s405, "璇ヨ处鍙�");
+                if (user.EnterpriseId != entity.Id) throw Oops.Oh(EnumErrorCodeType.s405, "璐﹀彿");
                 user.Name = request.Contacts;
                 user.PhoneNumber = request.ContactPhoneNumber;
                 if (request.Password.IsNotNull())
@@ -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);
-            if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "璇ヤ紒涓�");
-            request.Adapt(entity);
+            var entity = await rep.AsQueryable()
+                .Include(it => it.ElectronSignSettings)
+                .FirstOrDefaultAsync(it => it.Id == request.Id, cancellationToken);
+            if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "浼佷笟");
+
+            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;
         }
@@ -109,7 +132,7 @@
         public async Task<Guid> Handle(SetEnterpriseSmsSettingCommand request, CancellationToken cancellationToken)
         {
             var entity = await rep.AsQueryable().FirstOrDefaultAsync(it => it.Id == request.Id, cancellationToken);
-            if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "璇ヤ紒涓�");
+            if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "浼佷笟");
             request.Adapt(entity);
             await rep.UpdateAsync(entity);
             return entity.Id;

--
Gitblit v1.9.1