- autonavi api added.
- other refactor.
This commit is contained in:
@@ -15,6 +15,10 @@ import (
|
||||
"git.rosy.net.cn/baseapi"
|
||||
)
|
||||
|
||||
var (
|
||||
DefaultTimeValue = Str2Time("1970-01-01 00:00:00")
|
||||
)
|
||||
|
||||
func GetConcretValue(value reflect.Value) reflect.Value {
|
||||
for {
|
||||
if value.Kind() == reflect.Interface || value.Kind() == reflect.Ptr {
|
||||
@@ -41,10 +45,55 @@ func MustMarshal(obj interface{}) []byte {
|
||||
if err != nil {
|
||||
panic(fmt.Sprintf("err when Marshal obj:%v", obj))
|
||||
}
|
||||
|
||||
return byteArr
|
||||
}
|
||||
|
||||
func MustInterface2Int64(data interface{}) int64 {
|
||||
dataNumber, ok := data.(json.Number)
|
||||
if !ok {
|
||||
panic(fmt.Sprintf("error when cast:%v to int64", data))
|
||||
}
|
||||
retVal, err := dataNumber.Int64()
|
||||
if err != nil {
|
||||
panic(err.Error())
|
||||
}
|
||||
return retVal
|
||||
}
|
||||
|
||||
func Interface2Int64WithDefault(data interface{}, defValue int64) int64 {
|
||||
if data == nil {
|
||||
return defValue
|
||||
}
|
||||
return MustInterface2Int64(data)
|
||||
}
|
||||
|
||||
func MustInterface2Float64(data interface{}) float64 {
|
||||
dataNumber, ok := data.(json.Number)
|
||||
if !ok {
|
||||
panic(fmt.Sprintf("error when convert:%v", data))
|
||||
}
|
||||
retVal, err := dataNumber.Float64()
|
||||
if err != nil {
|
||||
panic(err.Error())
|
||||
}
|
||||
return retVal
|
||||
}
|
||||
|
||||
func Interface2FloatWithDefault(data interface{}, defValue float64) (retVal float64) {
|
||||
if data == nil {
|
||||
return defValue
|
||||
}
|
||||
return MustInterface2Float64(data)
|
||||
}
|
||||
|
||||
func Interface2String(data interface{}) string {
|
||||
if data == nil {
|
||||
return ""
|
||||
}
|
||||
return data.(string)
|
||||
}
|
||||
|
||||
//
|
||||
func Bool2String(value bool) string {
|
||||
if value {
|
||||
return "true"
|
||||
@@ -84,44 +133,6 @@ func Int2Str(value int) string {
|
||||
return strconv.Itoa(value)
|
||||
}
|
||||
|
||||
func MustInterface2Int64(data interface{}) int64 {
|
||||
dataNumber, ok := data.(json.Number)
|
||||
if !ok {
|
||||
panic(fmt.Sprintf("error when cast:%v to int64", data))
|
||||
}
|
||||
retVal, err := dataNumber.Int64()
|
||||
if err != nil {
|
||||
panic(err.Error())
|
||||
}
|
||||
return retVal
|
||||
}
|
||||
|
||||
func MustInterface2Float64(data interface{}) float64 {
|
||||
dataNumber, ok := data.(json.Number)
|
||||
if !ok {
|
||||
panic(fmt.Sprintf("error when convert:%v", data))
|
||||
}
|
||||
retVal, err := dataNumber.Float64()
|
||||
if err != nil {
|
||||
panic(err.Error())
|
||||
}
|
||||
return retVal
|
||||
}
|
||||
|
||||
func Interface2Float64(data interface{}) (retVal float64) {
|
||||
if dataNumber, ok := data.(json.Number); ok {
|
||||
retVal, _ = dataNumber.Float64()
|
||||
}
|
||||
return retVal
|
||||
}
|
||||
|
||||
func Interface2String(data interface{}) string {
|
||||
if data == nil {
|
||||
return ""
|
||||
}
|
||||
return data.(string)
|
||||
}
|
||||
|
||||
// timestamp is in second
|
||||
func Timestamp2Str(timestamp int64) string {
|
||||
return Time2Str(time.Unix(timestamp, 0))
|
||||
@@ -139,7 +150,16 @@ func Str2Time(timeStr string) time.Time {
|
||||
timeStr = strings.Replace(timeStr, "T", " ", 1)
|
||||
retVal, err := time.ParseInLocation("2006-01-02 15:04:05", timeStr, time.Local)
|
||||
if err != nil {
|
||||
baseapi.SugarLogger.Errorf("ParseInLocation failed, timeStr:%v, error:%v", timeStr, err)
|
||||
baseapi.SugarLogger.Errorf("time.ParseInLocation failed, timeStr:%v, error:%v", timeStr, err)
|
||||
}
|
||||
return retVal
|
||||
}
|
||||
|
||||
func Str2TimeWithDefault(timeStr string, defValue time.Time) time.Time {
|
||||
timeStr = strings.Replace(timeStr, "T", " ", 1)
|
||||
retVal, err := time.ParseInLocation("2006-01-02 15:04:05", timeStr, time.Local)
|
||||
if err != nil {
|
||||
return defValue
|
||||
}
|
||||
return retVal
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user