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.Core/Models/UserServer/EnterpriseEmployees/Commands/SendInviteElectronSignSmsCommand.cs | 5 ++ FlexJobApi.UserServer.Application/EnterpriseEmployees/Commands/EnterpriseEmployeesCommandHandler.cs | 76 +++++++++++++++++++++++++------------ FlexJobApi.Web.Entry/appsettings.json | 16 ++++---- 3 files changed, 64 insertions(+), 33 deletions(-) diff --git a/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Commands/SendInviteElectronSignSmsCommand.cs b/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Commands/SendInviteElectronSignSmsCommand.cs index efd653f..ddb998a 100644 --- a/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Commands/SendInviteElectronSignSmsCommand.cs +++ b/FlexJobApi.Core/Models/UserServer/EnterpriseEmployees/Commands/SendInviteElectronSignSmsCommand.cs @@ -22,5 +22,10 @@ /// Id /// </summary> public List<Guid> Ids { get; set; } + + /// <summary> + /// 鍚堝悓妯℃澘Id + /// </summary> + public Guid ContractTemplateId { get; set; } } } 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; } diff --git a/FlexJobApi.Web.Entry/appsettings.json b/FlexJobApi.Web.Entry/appsettings.json index 7cbfda4..74973ad 100644 --- a/FlexJobApi.Web.Entry/appsettings.json +++ b/FlexJobApi.Web.Entry/appsettings.json @@ -2,15 +2,15 @@ "$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json", "Environment": "Local", "ConnectionStrings": { - "FlexJobApi": "Server=120.26.58.240; Database=Dev_FlexJobApi; User=bole;Password=Bole1472589;Encrypt=false;", - "FlexJobApiLog": "Server=120.26.58.240; Database=Dev_FlexJobApiLog; User=bole;Password=Bole1472589;Encrypt=false;", - "HumanResources": "Server=120.26.58.240; Database=Dev_12333; User=bole;Password=Bole1472589;Encrypt=false;", - "SyncTarget": "Server=rm-bp1mt744021h1s6dg4o.sqlserver.rds.aliyuncs.com,2333; Database=Pro_FlexJobApi; User=bole;Password=Blcs20@%27;Encrypt=false;" - - //"FlexJobApi": "Server=rm-bp1mt744021h1s6dg4o.sqlserver.rds.aliyuncs.com,2333; Database=Pro_FlexJobApi; User=bole;Password=Blcs20@%27;Encrypt=false;", - //"FlexJobApiLog": "Server=rm-bp1mt744021h1s6dg4o.sqlserver.rds.aliyuncs.com,2333; Database=Pro_FlexJobApiLog; User=bole;Password=Blcs20@%27;Encrypt=false;", - //"HumanResources": "Server=rm-bp1mt744021h1s6dg4o.sqlserver.rds.aliyuncs.com,2333; Database=Pro_12333; User=bole;Password=Blcs20@%27;Encrypt=false;", + //"FlexJobApi": "Server=120.26.58.240; Database=Dev_FlexJobApi; User=bole;Password=Bole1472589;Encrypt=false;", + //"FlexJobApiLog": "Server=120.26.58.240; Database=Dev_FlexJobApiLog; User=bole;Password=Bole1472589;Encrypt=false;", + //"HumanResources": "Server=120.26.58.240; Database=Dev_12333; User=bole;Password=Bole1472589;Encrypt=false;", //"SyncTarget": "Server=rm-bp1mt744021h1s6dg4o.sqlserver.rds.aliyuncs.com,2333; Database=Pro_FlexJobApi; User=bole;Password=Blcs20@%27;Encrypt=false;" + + "FlexJobApi": "Server=rm-bp1mt744021h1s6dg4o.sqlserver.rds.aliyuncs.com,2333; Database=Pro_FlexJobApi; User=bole;Password=Blcs20@%27;Encrypt=false;", + "FlexJobApiLog": "Server=rm-bp1mt744021h1s6dg4o.sqlserver.rds.aliyuncs.com,2333; Database=Pro_FlexJobApiLog; User=bole;Password=Blcs20@%27;Encrypt=false;", + "HumanResources": "Server=rm-bp1mt744021h1s6dg4o.sqlserver.rds.aliyuncs.com,2333; Database=Pro_12333; User=bole;Password=Blcs20@%27;Encrypt=false;", + "SyncTarget": "Server=rm-bp1mt744021h1s6dg4o.sqlserver.rds.aliyuncs.com,2333; Database=Pro_FlexJobApi; User=bole;Password=Blcs20@%27;Encrypt=false;" }, "Consul": { "Address": "http://localhost:8500/", -- Gitblit v1.9.1