From ced7ed5d9b3e0cd0c1bdbc9d76d1906301d189c2 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期二, 09 九月 2025 14:04:26 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs | 76 +++++++++++++++++++++++++------------ 1 files changed, 51 insertions(+), 25 deletions(-) diff --git a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs index ef1236b..fc63acd 100644 --- a/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs +++ b/FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs @@ -260,13 +260,6 @@ UserSignContractStatus = entity.UserSignContractStatus, }; await repEnterpriseEmployeeContract.InsertAsync(contract); - //await mediator.Send(new SaveEnterpriseCostCommand - //{ - // EnterpriseId = logier.EnterpriseId!.Value, - // ContractTemplateId = request.ContractTemplateId, - // EnterpriseEmployeeContractId = contract.Id, - // Type = EnumEnterpriseCostType.ElectronSign - //}); await rep.UpdateAsync(entity); } return entities.Count; @@ -281,34 +274,67 @@ public async Task<int> Handle(SendInviteElectronSignSmsCommand request, CancellationToken cancellationToken) { var logier = JwtUtils.GetCurrentLogier(); + + await mediator.Send(new CheckContractTemplateCommand + { + Id = request.ContractTemplateId + }, cancellationToken); + var entities = await rep.AsQueryable() .Include(it => it.Enterprise) .Include(it => it.ContractTemplate) .Where(it => it.EnterpriseId == logier.EnterpriseId - && request.Ids.Contains(it.Id) - && it.UserSignContractStatus == EnumTaskUserSignContractStatus.Wait) + && request.Ids.Contains(it.Id)) .ToListAsync(); - foreach (var entity in entities) + + foreach (var id in request.Ids) { - var codeUrl = new SaveCodeUrlCommand + var entity = entities.FirstOrDefault(it => it.Id == id); + if (entity == null) throw Oops.Oh(EnumErrorCodeType.s404, "鐏靛伐"); + if (entity.UserSignContractStatus == null + || entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Refuse + || entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Stop) { - Scene = EnumCodeUrlScene.InviteElectronSign, - ParamValue1 = entity.Id.ToString(), - ExpiredTime = DateTime.Now.AddMonths(1) - }; - var code = await mediator.Send(codeUrl); - await smsUtils.Send(new SendSmsModel + entity.ContractTemplateId = request.ContractTemplateId; + 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)}"; + entity.ContractUrl = null; + var contract = new EnterpriseEmployeeContract + { + EnterpriseEmployeeId = entity.Id, + ContractTemplateId = entity.ContractTemplateId, + ContractCode = entity.ContractCode, + UserSignContractStatus = entity.UserSignContractStatus, + }; + await repEnterpriseEmployeeContract.InsertAsync(contract); + await rep.UpdateAsync(entity); + } + if (entity.UserSignContractStatus == EnumTaskUserSignContractStatus.Wait) { - PhoneNumber = entity.ContactPhoneNumber, - TemplateCode = EnumSmsTemplateCode.InviteElectronSign, - }, - new - { - name = entity.Enterprise.EnterpriseName, - code = code - }); + 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, + TemplateCode = EnumSmsTemplateCode.InviteElectronSign, + }, + new + { + name = entity.Enterprise.EnterpriseName, + code = code + }); + } } + return entities.Count; } -- Gitblit v1.9.1