47 lines
988 B
Go
47 lines
988 B
Go
package maphelper
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/shopspring/decimal"
|
|
)
|
|
|
|
func GetString(m map[string]interface{}, key string) (string, error) {
|
|
val, ok := m[key]
|
|
if !ok {
|
|
return "", fmt.Errorf("参数错误,缺少字段 %s", key)
|
|
}
|
|
strVal, ok := val.(string)
|
|
if !ok {
|
|
return "", fmt.Errorf("字段 %s 类型错误", key)
|
|
}
|
|
return strVal, nil
|
|
}
|
|
|
|
func GetFloat64(m map[string]interface{}, key string) (float64, error) {
|
|
val, ok := m[key]
|
|
if !ok {
|
|
return 0, fmt.Errorf("参数错误,缺少字段 %s", key)
|
|
}
|
|
f, ok := val.(float64)
|
|
if !ok {
|
|
return 0, fmt.Errorf("字段 %s 类型错误", key)
|
|
}
|
|
return f, nil
|
|
}
|
|
|
|
func GetBool(m map[string]interface{}, key string) bool {
|
|
if val, ok := m[key].(bool); ok {
|
|
return val
|
|
}
|
|
return false
|
|
}
|
|
|
|
func GetDecimal(m map[string]interface{}, key string) decimal.Decimal {
|
|
if val, ok := m[key].(string); ok {
|
|
d, _ := decimal.NewFromString(val)
|
|
return d
|
|
}
|
|
return decimal.Zero
|
|
}
|