From 1aeaabb680b44b8ef960c4471f2f2903cbfe4805 Mon Sep 17 00:00:00 2001 From: sunpengfei <i@angelzzz.com> Date: 星期四, 21 八月 2025 15:17:25 +0800 Subject: [PATCH] feat:开发 --- FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs | 24 ++++++++++++++++++++++-- 1 files changed, 22 insertions(+), 2 deletions(-) diff --git a/FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs b/FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs index 5e701ff..8dc1073 100644 --- a/FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs +++ b/FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs @@ -23,13 +23,15 @@ /// 鍚堝悓妯℃澘鍛戒护澶勭悊鍣� /// </summary> public class ContractTemplateCommandHandler( - IRepository<ContractTemplate> rep + IRepository<ContractTemplate> rep, + WxmpUtils wxmpUtils ) : IRequestHandler<SaveContractTemplateCommand, Guid>, IRequestHandler<SaveContractTemplateValuesCommand, Guid>, IRequestHandler<SetIsDisabledContractTemplateCommand, int> { private readonly IRepository<ContractTemplate> rep = rep; + private readonly WxmpUtils wxmpUtils = wxmpUtils; /// <summary> /// 淇濆瓨鍚堝悓妯℃澘 @@ -46,14 +48,32 @@ } if (request.EnterpriseId == null) throw Oops.Oh(EnumErrorCodeType.s400, "璇烽�夋嫨浼佷笟"); + var existCode = await rep.AsQueryable().AsNoTracking() + .AnyAsync(it => it.Code == request.Code && !it.IsDisabled && it.Id != request.Id); + if (existCode) throw Oops.Oh(EnumErrorCodeType.s405, "涓氬姟缂栫爜"); + var entity = await request.SaveData<ContractTemplate, SaveContractTemplateCommand>( q => q .Include(it => it.Values) .Where(it => it.EnterpriseId == request.EnterpriseId && !it.IsDisabled), - it => it.EnterpriseId == request.EnterpriseId && it.Name == request.Name && !it.IsDisabled && it.Id != request.Id, + null, entity => { + if (entity.Code != request.Code) + { + entity.WxmpQrCode = wxmpUtils.GetQrCodeOssUrl(new WxmpGetQrCodeCommand + { + UserType = EnumUserType.Personal, + OssScene = "Wxmp/QrCode/ContractTemplate", + OssFileName = $"{entity.Name}.png", + Page = "subpackages/mine/mineAgreementSignDetail/mineAgreementSignDetail", + CheckPath = false, + Scene = $"{entity.Code}", + }).Result; + } + request.Adapt(entity); + if (request.Id == null) { entity.Status = EnumContractTemplateStatus.Wait; -- Gitblit v1.9.1