From a203c86aa18dff66f07159a7ae5fefc318b43162 Mon Sep 17 00:00:00 2001
From: zhengyiming <540361168@qq.com>
Date: 星期五, 05 九月 2025 14:13:12 +0800
Subject: [PATCH] fix: s

---
 FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs |   60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 56 insertions(+), 4 deletions(-)

diff --git a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs
index a75ed94..beff6f6 100644
--- a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs
+++ b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Queries/EnterpriseEmployeeQueryHandler.cs
@@ -1,4 +1,5 @@
-锘縰sing FlexJobApi.Core;
+锘縰sing Aop.Api.Domain;
+using FlexJobApi.Core;
 using Furion.DatabaseAccessor;
 using Furion.DistributedIDGenerator;
 using Furion.FriendlyException;
@@ -9,6 +10,7 @@
 using System;
 using System.Collections.Generic;
 using System.Linq;
+using System.Security.Principal;
 using System.Text;
 using System.Threading.Tasks;
 
@@ -21,6 +23,8 @@
             IRepository<EnterpriseEmployee> rep,
             IRepository<ContractTemplate> repContractTemplate,
             IRepository<EnterpriseEmployeeContract> repEnterpriseEmployeeContract,
+            IRepository<Enterprise> repEnterprise,
+            IRepository<User> repUser,
             IMediator mediator
         ) :
         IRequestHandler<GetEnterpriseEmployeesQuery, GetEnterpriseEmployeesQueryResult>,
@@ -31,6 +35,8 @@
         private readonly IRepository<EnterpriseEmployee> rep = rep;
         private readonly IRepository<ContractTemplate> repContractTemplate = repContractTemplate;
         private readonly IRepository<EnterpriseEmployeeContract> repEnterpriseEmployeeContract = repEnterpriseEmployeeContract;
+        private readonly IRepository<Enterprise> repEnterprise = repEnterprise;
+        private readonly IRepository<User> repUser = repUser;
         private readonly IMediator mediator = mediator;
 
         /// <summary>
@@ -239,12 +245,51 @@
                 }, cancellationToken);
 
                 var entity = await rep.AsQueryable()
-                    .Include(it => it.Enterprise)
                     .Where(it =>
                         it.UserId == logier.Id
                         && it.ContractTemplateId == contractTemplate.Id)
                     .FirstOrDefaultAsync();
-                if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "鐏靛伐");
+                var enterprise = await repEnterprise.AsQueryable()
+                    .Where(it => it.Id == contractTemplate.EnterpriseId)
+                    .Select(it => new
+                    {
+                        it.EnterpriseName
+                    })
+                    .FirstOrDefaultAsync();
+                if (enterprise == null) throw Oops.Oh(EnumErrorCodeType.s404, "浼佷笟");
+                var add = false;
+                if (entity == null)
+                {
+                    var user = await repUser.AsQueryable().AsNoTracking()
+                        .Include(it => it.UserAuth)
+                        .Where(it => it.Id == logier.Id)
+                        .Select(it => new
+                        {
+                            it.Name,
+                            it.Identity,
+                            it.ContactPhoneNumber,
+                            it.Gender,
+                            it.Age,
+                            it.UserAuth.IdentityImg,
+                            it.UserAuth.IdentityBackImg
+                        })
+                        .FirstOrDefaultAsync(cancellationToken);
+                    if (user == null) throw Oops.Oh(EnumErrorCodeType.s404, "璐﹀彿");
+                    entity = new EnterpriseEmployee
+                    {
+                        Id = IDGen.NextID(),
+                        EnterpriseId = contractTemplate.EnterpriseId,
+                        UserId = logier.Id,
+                        Name = user.Name,
+                        Identity = user.Identity,
+                        ContactPhoneNumber = user.ContactPhoneNumber,
+                        Gender = user.Gender,
+                        Age = user.Age,
+                        IdentityImg = user.IdentityImg,
+                        IdentityBackImg = user.IdentityBackImg,
+                    };
+                    add = true;
+                }
                 if (entity.UserSignContractStatus == null)
                 {
                     entity.ContractTemplateId = contractTemplate.Id;
@@ -262,6 +307,13 @@
                         UserSignContractStatus = entity.UserSignContractStatus,
                     };
                     await repEnterpriseEmployeeContract.InsertAsync(contract);
+                }
+                if (add)
+                {
+                    await rep.InsertAsync(entity);
+                }
+                else
+                {
                     await rep.UpdateAsync(entity);
                 }
                 return new GetPersonalUserElectronSignQueryResult
@@ -274,7 +326,7 @@
                     Identity = entity.Identity,
                     ContactPhoneNumber = entity.ContactPhoneNumber,
                     UserSignContractTime = entity.UserSignContractTime,
-                    EnterpriseEnterpriseName = entity.Enterprise.EnterpriseName,
+                    EnterpriseEnterpriseName = enterprise.EnterpriseName,
                     EnterpriseSignContractTime = entity.EnterpriseSignContractTime,
                     ContractUrl = entity.ContractUrl,
                 };

--
Gitblit v1.9.1