using Hncore.Infrastructure.Extension; using System; using System.Collections.Generic; using Hncore.Pass.PaymentCenter.Domain.Refund; namespace Hncore.Pass.PaymentCenter.Domain { public partial class RefundRecord { public int Id { get; set; } public DateTime? CreateTime { get; set; } public DateTime? UpdateTime { get; set; } public int? DeleteTag { get; set; } public int? TenantId { get; set; } public int? StoreId { get; set; } public int? PaymentRecordId { get; set; } public DateTime? RequestTime { get; set; } public string OrderId { get; set; } public string TransactionId { get; set; } public string RefundId { get; set; } public string TransactionRefundId { get; set; } public RefundStatus RefundStatus { get; set; } public int? RefundFee { get; set; } public int? OrderTotalFee { get; set; } public PaymentChannel PaymentChannel { get; set; } public int PaymentMethod { get; set; } public PaymentType PaymentType { get; set; } public DateTime? RefundSuccessTime { get; set; } public string RefundReason { get; set; } public DateTime? ApplyCancelTime { get; set; } public string CancelReason { get; set; } public CancelStatus CancelStatus { get; set; } public DateTime? QueryJobPollTime { get; set; } public DateTime? StatementJobPollTime { get; set; } public string CompanyName { get; set; } public int? OperatorId { get; set; } public string OperatorName { get; set; } public int? OffLineRefund { get; set; } public int TaskStates { get; set; } public string Bak { get; set; } public string CallbackUrl { get; set; } /// /// 设置为退款成功 /// /// 交易平台退款单号 /// 退款到账时间 public void SetRefundSuccessed(string transactionRefundId, DateTime? refundSuccessTime) { this.RefundStatus = RefundStatus.Success; this.UpdateTime = DateTime.Now; if (refundSuccessTime != null) { this.RefundSuccessTime = refundSuccessTime; } if (transactionRefundId.Has()) { this.TransactionRefundId = transactionRefundId; } } /// /// 设置为退款失败 /// public void SetRefundFailed() { this.RefundStatus = RefundStatus.Fail; this.UpdateTime = DateTime.Now; } /// /// 设置为撤销成功 /// public void SetCancelSuccessed() { // 撤销中,未到账 if (this.CancelStatus == CancelStatus.Canceling && this.RefundStatus != RefundStatus.Success) { this.CancelStatus = CancelStatus.Success; this.RefundStatus = RefundStatus.Fail; this.UpdateTime = DateTime.Now; } } /// /// 设置为撤销失败 /// public void SetCancelFailed() { // 撤销中,已到账 if (this.CancelStatus == CancelStatus.Canceling && this.RefundStatus == RefundStatus.Success) { this.CancelStatus = CancelStatus.Fail; this.UpdateTime = DateTime.Now; } } /// /// 重置状态,失败的单子重新发起退款 /// public void ReSetStatus(int refundFee) { this.RefundStatus = RefundStatus.Processing; this.CancelStatus = CancelStatus.None; this.RequestTime = DateTime.Now; this.RefundSuccessTime = null; this.RefundFee = refundFee; } /// /// 设置新的refundId /// public void SetNewRefundId() { this.RefundId = Guid.NewGuid().ToString().Replace("-", ""); } } }