forked from all_user/stat_center
Initial commit
This commit is contained in:
@@ -0,0 +1,64 @@
|
||||
package utils
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson"
|
||||
)
|
||||
|
||||
//ToBsonM 将struct转换为 Bson Map
|
||||
func ToBsonM(s interface{}) (bson.M, error) {
|
||||
data, err := bson.Marshal(s)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
m := make(bson.M)
|
||||
if err := bson.Unmarshal(data, &m); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return m, nil
|
||||
}
|
||||
|
||||
// 将page转换为数据库的skip、limit
|
||||
func ToDBPage(pageNum int64, pageSize int64) (skip int64, limit int64) {
|
||||
return (pageNum - 1) * pageSize, pageSize
|
||||
}
|
||||
|
||||
//JSONStruct2Map 将struct转换为Map
|
||||
func JSONStruct2Map(obj interface{}) (map[string]interface{}, error) {
|
||||
m := make(map[string]interface{})
|
||||
j, err := json.Marshal(obj)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if err := json.Unmarshal(j, &m); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return m, err
|
||||
}
|
||||
|
||||
//Map2JSONStruct 将map转换为Json struct
|
||||
func Map2JSONStruct(v interface{}, m map[string]interface{}) error {
|
||||
j, err := json.Marshal(m)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if err := json.Unmarshal(j, v); err != nil {
|
||||
return err
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
// struct转换为Map
|
||||
func Struct2Map(obj interface{}) map[string]interface{} {
|
||||
m := make(map[string]interface{})
|
||||
b, err := json.Marshal(obj)
|
||||
if err != nil {
|
||||
return m
|
||||
}
|
||||
if err = json.Unmarshal(b, &m); err != nil {
|
||||
fmt.Println(err)
|
||||
}
|
||||
return m
|
||||
}
|
||||
Reference in New Issue
Block a user