core/db/sql/utility.go

32 lines
534 B
Go
Raw Permalink Normal View History

2024-01-01 16:55:54 +00:00
package sql
import (
"reflect"
)
func GetRecordMap(s interface{}) map[string]interface{} {
rv := reflect.ValueOf(s)
rt := reflect.TypeOf(s)
if rt.Kind() == reflect.Ptr {
rv = rv.Elem()
rt = rt.Elem()
} else {
panic("must be ptr")
}
fields := make(map[string]interface{})
// rt := reflect.TypeOf(s)
//rv := reflect.ValueOf(s)
for i := 0; i < rt.NumField(); i++ {
field := rt.Field(i)
dbKey := field.Tag.Get("db")
if dbKey == "" {
continue
}
fields[dbKey] = rv.Field(i).Interface()
}
return fields
}