voucher/internal/biz/vo/order_status.go

89 lines
1.9 KiB
Go

package vo
import "fmt"
type OrderStatus uint8
const (
OrderStatusWait OrderStatus = iota + 1
OrderStatusIng
OrderStatusSuccess
OrderStatusFail
OrderStatusUse
OrderStatusExpired
)
var OrderStatusMap = map[OrderStatus]string{
OrderStatusWait: "待发放",
OrderStatusIng: "发放中",
OrderStatusSuccess: "发放成功",
OrderStatusFail: "发放失败",
OrderStatusUse: "已使用",
OrderStatusExpired: "已过期",
}
func (s OrderStatus) GetText() string {
if t, ok := OrderStatusMap[s]; ok {
return t
}
return "未知状态"
}
func (s OrderStatus) GetValue() uint8 {
return uint8(s)
}
func (s OrderStatus) IsWait() bool {
return s == OrderStatusWait
}
func (s OrderStatus) IsIng() bool {
return s == OrderStatusIng
}
func (s OrderStatus) IsSuccess() bool {
return s == OrderStatusSuccess
}
func (s OrderStatus) IsFail() bool {
return s == OrderStatusFail
}
func (s OrderStatus) IsUse() bool {
return s == OrderStatusUse
}
func (s OrderStatus) IsExpired() bool {
return s == OrderStatusExpired
}
func (s OrderStatus) IsCanNotify() bool {
return s.IsSuccess() || s.IsUse() || s.IsExpired()
}
var OrderStatusMapOrderNotifyEvent = map[OrderStatus]OrderNotifyEvent{
OrderStatusSuccess: OrderNotifyEventSendDEd,
OrderStatusUse: OrderNotifyEventUsed,
OrderStatusExpired: OrderNotifyEventExpired,
}
func (s OrderStatus) GetOrderNotifyEvent() (OrderNotifyEvent, error) {
if t, ok := OrderStatusMapOrderNotifyEvent[s]; ok {
return t, nil
}
return 0, fmt.Errorf("CmbStatus[%s]未定义", s)
}
var OrderStatusMapCmbStatus = map[OrderStatus]CmbStatus{
OrderStatusSuccess: CmbStatusSuccess,
OrderStatusUse: CmbStatusUse,
OrderStatusExpired: CmbStatusExpired,
}
func (s OrderStatus) GetCmbStatusText() (CmbStatus, error) {
if t, ok := OrderStatusMapCmbStatus[s]; ok {
return t, nil
}
return "", fmt.Errorf("cmbStatus[%s]未定义", s)
}