diff --git a/pkg/dbutil/dbutil.go b/pkg/dbutil/dbutil.go index 872a0911..e3dfbbf4 100644 --- a/pkg/dbutil/dbutil.go +++ b/pkg/dbutil/dbutil.go @@ -24,16 +24,38 @@ func QuickSetStr(strVal *string, m map[string]interface{}, name string) { *strVal = str } +func QuickSetInt(ival *int, m map[string]interface{}, name string) { + v, ok := m[name] + if !ok { + return + } + sqlInt, ok := v.(int) + if ok { + *ival = sqlInt + return + } + sqlInt64, ok := v.(int64) + if ok { + *ival = int(sqlInt64) + return + } +} + func QuickSetInt64(ival *int64, m map[string]interface{}, name string) { v, ok := m[name] if !ok { return } - sqlInt, ok := v.(int64) - if !ok { + sqlInt64, ok := v.(int64) + if ok { + *ival = sqlInt64 + return + } + sqlInt, ok := v.(int) + if ok { + *ival = int64(sqlInt) return } - *ival = sqlInt } func QuickSetBool(bval *bool, m map[string]interface{}, name string) { diff --git a/pkg/dbutil/map.go b/pkg/dbutil/map.go index 59bde8f6..0614e368 100644 --- a/pkg/dbutil/map.go +++ b/pkg/dbutil/map.go @@ -189,6 +189,9 @@ func FromDBMap(v DBMappable, m map[string]interface{}) { } else if field.Type.Kind() == reflect.Int64 { intVal := fieldVal.Addr().Interface() QuickSetInt64(intVal.(*int64), m, dbName) + } else if field.Type.Kind() == reflect.Int { + intVal := fieldVal.Addr().Interface() + QuickSetInt(intVal.(*int), m, dbName) } else if field.Type.Kind() == reflect.Bool { boolVal := fieldVal.Addr().Interface() QuickSetBool(boolVal.(*bool), m, dbName)