From baed9bce4ccb41668f3740d77a7b664918e6403b Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期五, 22 八月 2025 15:59:44 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs | 42 ++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 40 insertions(+), 2 deletions(-) diff --git a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs index 71bf62f..564a73d 100644 --- a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs +++ b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs @@ -2,6 +2,7 @@ using Furion; using Furion.DatabaseAccessor; using Furion.DataValidation; +using Furion.DistributedIDGenerator; using Furion.FriendlyException; using Furion.HttpRemote; using Mapster; @@ -25,13 +26,16 @@ /// </summary> public class EnterpriseEmployeesCommandHandler( IRepository<EnterpriseEmployee> rep, - IRepository<User> repUser + IRepository<User> repUser, + IRepository<EnterpriseEmployeeContract> repEnterpriseEmployeeContract ) : IRequestHandler<ImportEnterpriseEmployeesCommand, ImportEnterpriseEmployeesCommandResult>, - IRequestHandler<EditEnterpriseEmployeeCommand, Guid> + IRequestHandler<EditEnterpriseEmployeeCommand, Guid>, + IRequestHandler<InviteEnterpriseEmployeeElectronSignCommand, Guid> { private readonly IRepository<EnterpriseEmployee> rep = rep; private readonly IRepository<User> repUser = repUser; + private readonly IRepository<EnterpriseEmployeeContract> repEnterpriseEmployeeContract = repEnterpriseEmployeeContract; /// <summary> /// 瀵煎叆鐏靛伐淇℃伅 @@ -189,5 +193,39 @@ cancellationToken); return entity.Id; } + + /// <summary> + /// 閭�璇风伒宸ョ绾� + /// </summary> + /// <param name="request"></param> + /// <param name="cancellationToken"></param> + /// <returns></returns> + public async Task<Guid> Handle(InviteEnterpriseEmployeeElectronSignCommand request, CancellationToken cancellationToken) + { + var logier = JwtUtils.GetCurrentLogier(); + var entity = await rep.AsQueryable() + .Where(it => it.EnterpriseId == logier.EnterpriseId && it.Id == request.Id) + .FirstOrDefaultAsync(); + if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "鐏靛伐"); + if (entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Pass) throw Oops.Oh(EnumErrorCodeType.s400, "宸茬绾�"); + if (entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Effect) throw Oops.Oh(EnumErrorCodeType.s400, "宸茬敓鏁�"); + if (entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Wait) throw Oops.Oh(EnumErrorCodeType.s400, "宸查個璇�"); + entity.ContractTemplateId = request.Id; + entity.UserSignContractStatus = EnumTaskUserSignContractStatus.Wait; + entity.UserSignContractTime = null; + entity.EnterpriseSignContractStatus = null; + entity.EnterpriseSignContractTime = null; + entity.ContractCode = $"{DateTime.Now:yyyyMMddHHmmss}{new Random(IDGen.NextID().GetHashCode()).Next(1000, 9999)}"; + var contract = new EnterpriseEmployeeContract + { + EnterpriseEmployeeId = entity.Id, + ContractTemplateId = entity.ContractTemplateId, + ContractCode = entity.ContractCode, + UserSignContractStatus = entity.UserSignContractStatus, + }; + await repEnterpriseEmployeeContract.InsertAsync(contract); + await rep.UpdateAsync(entity); + return entity.Id; + } } } -- Gitblit v1.9.1