| | |
| | | /// 合同模板命令处理器 |
| | | /// </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> |
| | | /// 保存合同模板 |
| | |
| | | } |
| | | 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); |
| | |
| | | |
| | | 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; |
| | | } |
| | | |