sunpengfei
22 小时以前 fd1d2c1d5f519ddb4667019d6685ff270ad6716b
FlexJobApi.UserServer.Application/ElectronSign/Commands/ContractTemplateCommandHandler.cs
@@ -30,7 +30,8 @@
        ) :
        IRequestHandler<SaveContractTemplateCommand, Guid>,
        IRequestHandler<SaveContractTemplateValuesCommand, Guid>,
        IRequestHandler<SetIsDisabledContractTemplateCommand, int>
        IRequestHandler<SetIsDisabledContractTemplateCommand, int>,
        IRequestHandler<CheckContractTemplateCommand, bool>
    {
        private readonly IMediator mediator = mediator;
        private readonly IRepository<ContractTemplate> rep = rep;
@@ -76,18 +77,15 @@
                 null,
                 entity =>
                 {
                     if (entity.Code.IsNotNull() && entity.Name.IsNotNull() && (entity.Code != request.Code || entity.Name != request.Name || entity.WxmpQrCode.IsNull()))
                     entity.WxmpQrCode = wxmpUtils.GetQrCodeOssUrl(new WxmpGetQrCodeCommand
                     {
                         entity.WxmpQrCode = wxmpUtils.GetQrCodeOssUrl(new WxmpGetQrCodeCommand
                         {
                             UserType = EnumUserType.Personal,
                             OssScene = "Wxmp/QrCode/ContractTemplate",
                             OssFileName = $"{request.Name}.png",
                             Page = "subpackages/mine/mineAgreementSignDetail/mineAgreementSignDetail",
                             CheckPath = false,
                             Scene = $"{request.Code}",
                         }).Result;
                     }
                         UserType = EnumUserType.Personal,
                         OssScene = "Wxmp/QrCode/ContractTemplate",
                         OssFileName = $"{request.Name}.png",
                         Page = "subpackages/mine/mineAgreementSignDetail/mineAgreementSignDetail",
                         CheckPath = false,
                         Scene = $"{request.Code}",
                     }).Result;
                     request.Adapt(entity);
@@ -143,10 +141,12 @@
               || entity.Values.Any(ov =>
                       request.Values.Count(nv =>
                           ov.Id == nv.Id
                           && ov.Name == nv.Name
                           && ov.Type == nv.Type
                           && ov.Recorder == nv.Recorder
                           && ov.UserType == nv.UserType
                           && ov.Label == nv.Label
                           && ov.BindProperty == nv.BindProperty
                           && ov.Required == nv.Required) != 1))
            {
                entity.Values = request.Values.Select(it =>
@@ -210,6 +210,35 @@
        }
        /// <summary>
        /// 校验合同模是否可用
        /// </summary>
        /// <param name="request"></param>
        /// <param name="cancellationToken"></param>
        /// <returns></returns>
        public async Task<bool> Handle(CheckContractTemplateCommand request, CancellationToken cancellationToken)
        {
            var model = await rep.AsQueryable().AsNoTracking()
                .Where(it => it.Id == request.Id && !it.IsDisabled)
                .Select(it => new
                {
                    it.Access,
                    it.Status
                })
                .FirstOrDefaultAsync();
            if (model == null) throw Oops.Oh(EnumErrorCodeType.s404, "合同模板");
            if (model.Status != EnumContractTemplateStatus.Completed) throw Oops.Oh(EnumErrorCodeType.s510, "未制版");
            await mediator.Send(new CheckElectronSignAccessEnabledsCommand
            {
                Accesses = new List<EnumElectronSignAccess>
                {
                    model.Access!.Value
                }
            }, cancellationToken);
            return true;
        }
        /// <summary>
        /// 同步电子签合同模板
        /// </summary>
        /// <param name="entity"></param>