- CreatePromotion

This commit is contained in:
gazebo
2018-10-13 20:28:20 +08:00
parent a96e0f4d9f
commit b158fd09ea
8 changed files with 355 additions and 24 deletions

View File

@@ -1,6 +1,11 @@
package jxutils
import "reflect"
import (
"bytes"
"encoding/base64"
"encoding/gob"
"reflect"
)
func CheckAndGetStructValue(item interface{}) *reflect.Value {
value := reflect.ValueOf(item)
@@ -20,3 +25,22 @@ func SetObjFieldByName(obj interface{}, fieldName string, value interface{}) {
refValue := CheckAndGetStructValue(obj)
refValue.FieldByName(fieldName).Set(reflect.ValueOf(value))
}
func SerializeData(data interface{}) (strValue string, err error) {
var buf bytes.Buffer
enc := gob.NewEncoder(&buf)
if err = enc.Encode(data); err == nil {
strValue = base64.StdEncoding.EncodeToString(buf.Bytes())
return strValue, nil
}
return "", err
}
func DeSerializeData(strValue string, dataPtr interface{}) (err error) {
byteData, err := base64.StdEncoding.DecodeString(strValue)
if err == nil {
dec := gob.NewDecoder(bytes.NewReader(byteData))
return dec.Decode(dataPtr)
}
return err
}