| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- namespace Admin.NET.Plugin.ApprovalFlow;
- /// <summary>
- /// 审批流通知推送日志(P4-16)
- /// 记录每次 NotifyUsers 按渠道分发的结果,便于运维排障与降级审计。
- /// 一条记录 = 一次(实例 × 通知类型 × 渠道)的分发结果(接收用户合并入 TargetUserIds / TargetCount)。
- /// </summary>
- [SugarTable(null, "审批流通知推送日志")]
- [SugarIndex("idx_flownotifylog_instance", nameof(InstanceId), OrderByType.Asc)]
- public class ApprovalFlowNotifyLog : EntityBase
- {
- /// <summary>
- /// 关联流程实例 Id
- /// </summary>
- [SugarColumn(ColumnDescription = "流程实例Id")]
- public long InstanceId { get; set; }
- /// <summary>
- /// 通知类型(NewTask / Urge / FlowCompleted / Transferred / Returned / AddSign / Withdrawn / Escalated / Timeout)
- /// </summary>
- [SugarColumn(ColumnDescription = "通知类型", Length = 32, IsNullable = true)]
- [MaxLength(32)]
- public string? NotifyType { get; set; }
- /// <summary>
- /// 推送渠道(SignalR / Email / Sms / DingTalk / WorkWeixin)
- /// </summary>
- [SugarColumn(ColumnDescription = "推送渠道", Length = 16)]
- [MaxLength(16)]
- public string Channel { get; set; } = "";
- /// <summary>
- /// 通知标题(冗余便于检索)
- /// </summary>
- [SugarColumn(ColumnDescription = "通知标题", Length = 256, IsNullable = true)]
- [MaxLength(256)]
- public string? Title { get; set; }
- /// <summary>
- /// 目标用户 Id 列表(CSV,最多保留 1024 字符)
- /// </summary>
- [SugarColumn(ColumnDescription = "目标用户ID列表CSV", Length = 1024, IsNullable = true)]
- [MaxLength(1024)]
- public string? TargetUserIds { get; set; }
- /// <summary>
- /// 目标用户数
- /// </summary>
- [SugarColumn(ColumnDescription = "目标用户数")]
- public int TargetCount { get; set; }
- /// <summary>
- /// 是否成功(至少一次底层调用未抛异常视为成功;对于 SignalR 若无在线用户也记 true)
- /// </summary>
- [SugarColumn(ColumnDescription = "是否成功")]
- public bool Success { get; set; }
- /// <summary>
- /// 错误信息(失败时填充,最多 1024 字符)
- /// </summary>
- [SugarColumn(ColumnDescription = "错误信息", Length = 1024, IsNullable = true)]
- [MaxLength(1024)]
- public string? ErrorMessage { get; set; }
- /// <summary>
- /// 耗时毫秒
- /// </summary>
- [SugarColumn(ColumnDescription = "耗时ms")]
- public int ElapsedMs { get; set; }
- }
|