157 lines
3.5 KiB
C#
157 lines
3.5 KiB
C#
using System.ComponentModel.DataAnnotations;
|
||
|
||
namespace YD_Event.Application.Certificate.Dtos;
|
||
|
||
/// <summary>
|
||
/// 生成PDF证书输入
|
||
/// </summary>
|
||
public class GeneratePdfCertificateInput
|
||
{
|
||
/// <summary>
|
||
/// 证书ID
|
||
/// </summary>
|
||
[Required(ErrorMessage = "证书ID不能为空")]
|
||
public long CertificateId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 模板ID(可选,默认使用证书关联的模板)
|
||
/// </summary>
|
||
public long? TemplateId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 占位符数据
|
||
/// </summary>
|
||
[Required(ErrorMessage = "占位符数据不能为空")]
|
||
public Dictionary<string, string> Data { get; set; }
|
||
|
||
/// <summary>
|
||
/// 是否生成二维码
|
||
/// </summary>
|
||
public bool GenerateQRCode { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 二维码大小(像素)
|
||
/// </summary>
|
||
public int QRCodeSize { get; set; } = 150;
|
||
}
|
||
|
||
/// <summary>
|
||
/// 批量生成PDF证书输入
|
||
/// </summary>
|
||
public class BatchGeneratePdfCertificateInput
|
||
{
|
||
/// <summary>
|
||
/// 证书ID
|
||
/// </summary>
|
||
[Required(ErrorMessage = "证书ID不能为空")]
|
||
public long CertificateId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 模板ID(可选)
|
||
/// </summary>
|
||
public long? TemplateId { get; set; }
|
||
|
||
/// <summary>
|
||
/// 证书数据列表
|
||
/// </summary>
|
||
[Required(ErrorMessage = "证书数据列表不能为空")]
|
||
public List<Dictionary<string, string>> DataList { get; set; }
|
||
|
||
/// <summary>
|
||
/// 是否生成二维码
|
||
/// </summary>
|
||
public bool GenerateQRCode { get; set; } = true;
|
||
|
||
/// <summary>
|
||
/// 二维码大小(像素)
|
||
/// </summary>
|
||
public int QRCodeSize { get; set; } = 150;
|
||
}
|
||
|
||
/// <summary>
|
||
/// PDF证书生成结果
|
||
/// </summary>
|
||
public class PdfCertificateGenerationResult
|
||
{
|
||
/// <summary>
|
||
/// 是否成功
|
||
/// </summary>
|
||
public bool IsSuccess { get; set; }
|
||
|
||
/// <summary>
|
||
/// 错误消息
|
||
/// </summary>
|
||
public string ErrorMessage { get; set; }
|
||
|
||
/// <summary>
|
||
/// 生成时间
|
||
/// </summary>
|
||
public DateTime GeneratedTime { get; set; }
|
||
|
||
/// <summary>
|
||
/// 生成耗时(毫秒)
|
||
/// </summary>
|
||
public long GenerationTimeMs { get; set; }
|
||
|
||
/// <summary>
|
||
/// PDF文件URL
|
||
/// </summary>
|
||
public string PdfUrl { get; set; }
|
||
|
||
/// <summary>
|
||
/// 二维码图片URL
|
||
/// </summary>
|
||
public string QRCodeUrl { get; set; }
|
||
|
||
/// <summary>
|
||
/// 验证URL
|
||
/// </summary>
|
||
public string VerificationUrl { get; set; }
|
||
|
||
/// <summary>
|
||
/// 警告信息
|
||
/// </summary>
|
||
public List<string> Warnings { get; set; } = new();
|
||
}
|
||
|
||
/// <summary>
|
||
/// 批量PDF证书生成结果
|
||
/// </summary>
|
||
public class BatchPdfCertificateGenerationResult
|
||
{
|
||
/// <summary>
|
||
/// 开始时间
|
||
/// </summary>
|
||
public DateTime StartTime { get; set; }
|
||
|
||
/// <summary>
|
||
/// 结束时间
|
||
/// </summary>
|
||
public DateTime EndTime { get; set; }
|
||
|
||
/// <summary>
|
||
/// 总数
|
||
/// </summary>
|
||
public int TotalCount { get; set; }
|
||
|
||
/// <summary>
|
||
/// 成功数量
|
||
/// </summary>
|
||
public int SuccessCount => SuccessResults.Count;
|
||
|
||
/// <summary>
|
||
/// 失败数量
|
||
/// </summary>
|
||
public int FailedCount => FailedResults.Count;
|
||
|
||
/// <summary>
|
||
/// 成功结果列表
|
||
/// </summary>
|
||
public List<PdfCertificateGenerationResult> SuccessResults { get; set; } = new();
|
||
|
||
/// <summary>
|
||
/// 失败结果列表
|
||
/// </summary>
|
||
public List<PdfCertificateGenerationResult> FailedResults { get; set; } = new();
|
||
}
|