From ad63bd48b1619e7c3779eefdf1d6a32a222169da Mon Sep 17 00:00:00 2001
From: sunpengfei <i@angelzzz.com>
Date: 星期二, 09 九月 2025 09:33:19 +0800
Subject: [PATCH] feat:开发

---
 FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs |   36 ++++++++++++++++++++++++++++++++----
 1 files changed, 32 insertions(+), 4 deletions(-)

diff --git a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs
index eb73bde..35da498 100644
--- a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs
+++ b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs
@@ -291,6 +291,13 @@
                 .ToListAsync();
             foreach (var entity in entities)
             {
+                var codeUrl = new SaveCodeUrlCommand
+                {
+                    Scene = EnumCodeUrlScene.InviteElectronSign,
+                    ParamValue1 = entity.Id.ToString(),
+                    ExpiredTime = DateTime.Now.AddMonths(1)
+                };
+                var code = await mediator.Send(codeUrl);
                 await smsUtils.Send(new SendSmsModel
                 {
                     PhoneNumber = entity.ContactPhoneNumber,
@@ -299,7 +306,7 @@
                 new
                 {
                     name = entity.Enterprise.EnterpriseName,
-                    code = entity.ContractTemplate.Code
+                    code = code
                 });
             }
             return entities.Count;
@@ -314,10 +321,31 @@
         public async Task<PersonalUserElectronSignCommandResult> Handle(PersonalUserElectronSignCommand request, CancellationToken cancellationToken)
         {
             var logier = JwtUtils.GetCurrentLogier();
+            Guid userId;
+            if (logier != null)
+            {
+                userId = logier.Id;
+            }
+            if (request.Id == null)
+            {
+                if (request.SmsCode.IsNotNull())
+                {
+                    var codeUrl = await mediator.Send(new GetCodeUrlQuery
+                    {
+                        Code = request.SmsCode,
+                        Scene = EnumCodeUrlScene.InviteElectronSign
+                    });
+                    request.Id = codeUrl.ParamValue1.ToGuid()!;
+                }
+                else
+                {
+                    throw Oops.Oh(EnumErrorCodeType.s400, "璇峰~鍐欑伒宸d鎴栫煭淇$紪鍙�");
+                }
+            }
             var entity = await rep.AsQueryable()
                 .Include(it => it.Enterprise)
                 .Include(it => it.ContractTemplate).ThenInclude(it => it.Values)
-                .Where(it => it.UserId == logier.Id && it.Id == request.Id)
+                .Where(it => it.Id == request.Id)
                 .FirstOrDefaultAsync();
             if (entity == null) throw Oops.Oh(EnumErrorCodeType.s510, "鏈姤鍚嶈浼佷笟");
             if (entity.UserSignContractStatus == null) throw Oops.Oh(EnumErrorCodeType.s510, "浼佷笟鏈彂璧风绾�");
@@ -331,7 +359,7 @@
             if (contract == null) throw Oops.Oh(EnumErrorCodeType.s404, "鍚堝悓");
             var user = await repUser.AsQueryable().AsNoTracking()
                 .Include(it => it.UserAuth)
-                .Where(it => it.Id == logier.Id)
+                .Where(it => it.Id == entity.UserId)
                 .FirstOrDefaultAsync();
             if (user == null) throw Oops.Oh(EnumErrorCodeType.s404, "鐢ㄦ埛");
             if (entity.ContractTemplate.Access == EnumElectronSignAccess.BestSign && !user.IsReal) throw Oops.Oh(EnumErrorCodeType.s510, "璇峰厛瀹炲悕");
@@ -340,7 +368,7 @@
                 OutContractId = contract.Id.ToString(),
                 TemplateId = entity.ContractTemplate.ElectronSignContractTemplateId!.Value,
                 Title = entity.ContractTemplate.Name,
-                OutUserId = logier.Id.ToString(),
+                OutUserId = entity.UserId.ToString(),
                 Values = entity.ContractTemplate.Values
                     .Where(it => it.UserType == EnumUserType.Personal)
                     .Select(it =>

--
Gitblit v1.9.1