85 lines
2.6 KiB
Go
85 lines
2.6 KiB
Go
|
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
|
||
|
}
|