53 lines
1.3 KiB
Go
53 lines
1.3 KiB
Go
|
package wallet
|
||
|
|
||
|
// ===================商業邏輯類型===================
|
||
|
|
||
|
type BusinessLogic string
|
||
|
|
||
|
// 定義商業邏輯名稱
|
||
|
const (
|
||
|
// NoLogic 無商業邏輯
|
||
|
NoLogic BusinessLogic = ""
|
||
|
// OrderLogic 訂單相關業務邏輯
|
||
|
OrderLogic BusinessLogic = "order"
|
||
|
// SystemTransferLogic 系統劃轉邏輯
|
||
|
SystemTransferLogic BusinessLogic = "system_transfer"
|
||
|
)
|
||
|
|
||
|
// 定義商業邏輯類型
|
||
|
const (
|
||
|
// NoLogicType 無商業邏輯類型
|
||
|
NoLogicType int8 = iota
|
||
|
// OrderLogicType 訂單業務邏輯類型
|
||
|
OrderLogicType
|
||
|
// SystemTransferLogicType 系統劃轉業務邏輯類型
|
||
|
SystemTransferLogicType
|
||
|
)
|
||
|
|
||
|
// 定義名稱和類型之間的映射
|
||
|
var logicNameToType = map[BusinessLogic]int8{
|
||
|
OrderLogic: OrderLogicType,
|
||
|
SystemTransferLogic: SystemTransferLogicType,
|
||
|
}
|
||
|
|
||
|
var logicTypeToName = map[int8]BusinessLogic{
|
||
|
OrderLogicType: OrderLogic,
|
||
|
SystemTransferLogicType: SystemTransferLogic,
|
||
|
}
|
||
|
|
||
|
// ToInt8 將 BusinessLogic 轉換為對應的 int8 類型
|
||
|
func (b BusinessLogic) ToInt8() int8 {
|
||
|
if val, ok := logicNameToType[b]; ok {
|
||
|
return val
|
||
|
}
|
||
|
return NoLogicType
|
||
|
}
|
||
|
|
||
|
// LogicTypeToName 將 int8 類型轉換為對應的 BusinessLogic 名稱
|
||
|
func LogicTypeToName(b int8) BusinessLogic {
|
||
|
if val, ok := logicTypeToName[b]; ok {
|
||
|
return val
|
||
|
}
|
||
|
return NoLogic
|
||
|
}
|