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

---
 FlexJobApi.UserServer.Application/Enterprises/Commands/EnterpriseCommandHandler.cs |   37 ++++++++++++++++++++++++++++++-------
 1 files changed, 30 insertions(+), 7 deletions(-)

diff --git a/FlexJobApi.UserServer.Application/Enterprises/Commands/EnterpriseCommandHandler.cs b/FlexJobApi.UserServer.Application/Enterprises/Commands/EnterpriseCommandHandler.cs
index ca8469b..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;
 
@@ -64,7 +66,7 @@
                     Name = request.Contacts,
                     PhoneNumber = request.ContactPhoneNumber,
                     UserName = request.UserName,
-                    Password = PBKDF2Encryption.Encrypt(request.Password),
+                    Password = request.Password.EncryptPassword(),
                     Level = 100,
                     Status = EnumUserStatus.Normal,
                 };
@@ -72,12 +74,12 @@
             }
             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())
                 {
-                    user.Password = PBKDF2Encryption.Encrypt(request.Password);
+                    user.Password = request.Password.EncryptPassword();
                 }
                 await repUser.UpdateAsync(user);
             }
@@ -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