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
 | |
| }
 |