sunpengfei
2025-08-21 8e2a25b07e8d4d003c61c8f7b9ee5e5e542371b4
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,11 +48,15 @@
            }
            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 =>
                 {
                     request.Adapt(entity);
@@ -68,6 +74,19 @@
            await SyncElectronSignContractTemplate(entity);
            if (request.Id == null)
            {
                entity.WxmpQrCode = await 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}",
                });
            }
            return entity.Id;
        }