package order // Status 表示訂單狀態 type Status int64 // ToInt64 將訂單狀態轉為 int64 func (s Status) ToInt64() int64 { return int64(s) } var statusMap = map[Status]string{ Created: CreatedString, Failed: FailedString, UnderReview: UnderReviewString, Processing: ProcessingString, Paid: PaidString, AwaitingTransfer: AwaitingTransferString, InDispute: InDisputeString, Completed: CompletedString, FailedTrade: FailedTradeString, Cancelled: CancelledString, Abnormal: AbnormalString, TimedOut: TimedOutString, } // ToString 將訂單類型轉為 String func (s Status) ToString() string { r := statusMap[s] return r } // 訂單狀態常量 const ( Created Status = iota // 訂單已建立 Failed // 建單失敗 UnderReview // 審核中 Processing // 付款中 Paid // 已付款 AwaitingTransfer // 待轉帳 InDispute // 申訴中 Completed // 交易完成 FailedTrade // 交易失敗 Cancelled // 交易取消 Abnormal // 交易異常 TimedOut // 交易超時 ) const ( CreatedString = "create" // 訂單已建立 FailedString = "failed" // 建單失敗 UnderReviewString = "under_review" // 審核中 ProcessingString = "processing" // 付款中 PaidString = "paid" // 已付款 AwaitingTransferString = "awaiting_transfer" // 待轉帳 InDisputeString = "in_dispute" // 申訴中 CompletedString = "completed" // 交易完成 FailedTradeString = "failed_trade" // 交易失敗 CancelledString = "cancelled" // 交易取消 AbnormalString = "abnormal" // 交易異常 TimedOutString = "timed_out" // 交易超時 ) var statusStringMap = map[string]Status{ CreatedString: Created, FailedString: Failed, UnderReviewString: UnderReview, ProcessingString: Processing, PaidString: Paid, AwaitingTransferString: AwaitingTransfer, InDisputeString: InDispute, CompletedString: Completed, FailedTradeString: FailedTrade, CancelledString: Cancelled, AbnormalString: Abnormal, TimedOutString: TimedOut, } // ConvertStringToStatus 將訂單類型轉為 Status func ConvertStringToStatus(t string) Status { s := statusStringMap[t] return s }