|
|
@@ -2,6 +2,7 @@ package format
|
|
|
|
|
|
import (
|
|
|
"fmt"
|
|
|
+ "gbase/glog"
|
|
|
"reflect"
|
|
|
"strconv"
|
|
|
"strings"
|
|
|
@@ -24,6 +25,12 @@ func ParseGormTag(tag string) map[string]string {
|
|
|
|
|
|
// 将map的值赋给struct
|
|
|
func MapToStruct(input map[string]interface{}, output interface{}) error {
|
|
|
+ defer func() {
|
|
|
+ if r := recover(); r != nil {
|
|
|
+ glog.XWarning(fmt.Sprintf("MapToStruct %v panic: %v\n", input, r))
|
|
|
+ }
|
|
|
+ }()
|
|
|
+
|
|
|
outputValue := reflect.ValueOf(output).Elem()
|
|
|
outputType := outputValue.Type()
|
|
|
|
|
|
@@ -80,6 +87,25 @@ func ConvertNilToEmptyString(data interface{}) interface{} {
|
|
|
if reflect.TypeOf(data).Kind() == reflect.String {
|
|
|
data = strings.TrimLeft(data.(string), " ")
|
|
|
data = strings.TrimRight(data.(string), " ")
|
|
|
+ } else if reflect.TypeOf(data).Kind() == reflect.Float64 {
|
|
|
+ if data.(float64) > 9000 {
|
|
|
+ data = fmt.Sprintf("%v", int64(data.(float64)))
|
|
|
+ } else {
|
|
|
+ data = fmt.Sprintf("%v", data.(float64))
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if reflect.TypeOf(data).Kind() == reflect.Float32 {
|
|
|
+ if data.(float32) > 9000 {
|
|
|
+ data = fmt.Sprintf("%v", int64(data.(float32)))
|
|
|
+ } else {
|
|
|
+ data = fmt.Sprintf("%v", data.(float32))
|
|
|
+ }
|
|
|
+ } else if reflect.TypeOf(data).Kind() == reflect.Int64 {
|
|
|
+ data = fmt.Sprintf("%v", data)
|
|
|
+ } else if reflect.TypeOf(data).Kind() == reflect.Int32 {
|
|
|
+ data = fmt.Sprintf("%v", data)
|
|
|
+ } else if reflect.TypeOf(data).Kind() == reflect.Int {
|
|
|
+ data = fmt.Sprintf("%v", data)
|
|
|
}
|
|
|
|
|
|
return data
|