voucher/internal/biz/vo/order_wechant_status.go

70 lines
1.5 KiB
Go

package vo
import "fmt"
type OrderWechatStatus uint8
const (
OrderWechatStatusWait OrderWechatStatus = iota + 1
OrderWechatStatusSuccess
OrderWechatStatusFail
OrderWechatStatusUse
OrderWechatStatusExpired
)
func (s OrderWechatStatus) GetValue() uint8 {
return uint8(s)
}
func (s OrderWechatStatus) IsWait() bool {
return s == OrderWechatStatusWait
}
func (s OrderWechatStatus) IsSuccess() bool {
return s == OrderWechatStatusSuccess
}
func (s OrderWechatStatus) IsFail() bool {
return s == OrderWechatStatusFail
}
func (s OrderWechatStatus) IsUse() bool {
return s == OrderWechatStatusUse
}
func (s OrderWechatStatus) IsExpired() bool {
return s == OrderWechatStatusExpired
}
func (s OrderWechatStatus) CanNotify() bool {
return s.IsSuccess() || s.IsUse() || s.IsExpired()
}
var OrderWechatStatusMap = map[OrderWechatStatus]string{
OrderWechatStatusWait: "待发放",
OrderWechatStatusSuccess: "发放成功",
OrderWechatStatusFail: "发放失败",
OrderWechatStatusUse: "已使用",
OrderWechatStatusExpired: "已过期",
}
var OrderStatusMapCmbStatus = map[OrderWechatStatus]CmbStatus{
OrderWechatStatusSuccess: CmbStatusSuccess,
OrderWechatStatusUse: CmbStatusUse,
OrderWechatStatusExpired: CmbStatusExpired,
}
func (s OrderWechatStatus) GetCmbStatusText() (CmbStatus, error) {
if t, ok := OrderStatusMapCmbStatus[s]; ok {
return t, nil
}
return "", fmt.Errorf("CmbStatus[%s]未定义", s)
}
func (s OrderWechatStatus) GetText() string {
if t, ok := OrderWechatStatusMap[s]; ok {
return t
}
return "未知状态"
}