package util
|
|
import (
|
"encoding/json"
|
"github.com/gin-gonic/gin"
|
"github.com/golang/glog"
|
"webserver/extend/code"
|
|
"crypto/rand"
|
"fmt"
|
"reflect"
|
"strings"
|
)
|
|
// iterater field of struct to lowcast.
|
// return type: string slice.
|
func FiledbyStuct(stuct interface{}) []string {
|
var strtmp []string
|
t := reflect.TypeOf(stuct)
|
for i := 0; i < t.NumField(); i++ {
|
strtmp = append(strtmp, strings.ToLower(string(t.Field(i).Name)))
|
}
|
return strtmp
|
}
|
|
//
|
// ResponseFormat 返回数据格式化
|
func ResponseFormat(c *gin.Context, respStatus *code.Code, data interface{}) {
|
if respStatus == nil {
|
glog.Error("response status param not found!")
|
respStatus = code.RequestParamError
|
}
|
c.JSON(respStatus.Status, gin.H{
|
"code": respStatus.Status,
|
"success": respStatus.Success,
|
"msg": respStatus.Message,
|
"data": data,
|
})
|
return
|
}
|
|
func PseudoUuid() (uuid string) {
|
b := make([]byte, 16)
|
rand.Read(b)
|
uuid = fmt.Sprintf("%X-%X-%X-%X-%X", b[0:4], b[4:6], b[6:8], b[8:10], b[10:])
|
|
return
|
}
|
|
//struct转map
|
func Struct2Map(obj interface{}) map[string]interface{} {
|
resultMap :=make(map[string]interface{},0)
|
bytesData, err := json.Marshal(obj)
|
if err !=nil {
|
return resultMap
|
}
|
json.Unmarshal(bytesData, &resultMap)
|
return resultMap
|
|
//
|
//t := reflect.TypeOf(obj)
|
//v := reflect.ValueOf(obj)
|
//
|
//var data = make(map[string]interface{})
|
//for i := 0; i < t.NumField(); i++ {
|
// data[t.Field(i).Name] = v.Field(i).Interface()
|
//}
|
//return data
|
}
|