From 28db30e5a458ee012959269d50e16eadaa0c5d12 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期五, 05 九月 2025 15:10:09 +0800 Subject: [PATCH] feat:开发 --- 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