@@ -0,0 +1,66 @@
|
||||
package mediaCenter
|
||||
|
||||
import (
|
||||
"github.com/fatih/structs"
|
||||
"reflect"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// MediaCenterService 媒资库相关服务调用
|
||||
type MediaCenterService struct {
|
||||
url string
|
||||
proId string
|
||||
secret string
|
||||
}
|
||||
|
||||
type Config struct {
|
||||
Url string
|
||||
ProId string
|
||||
Secret string
|
||||
}
|
||||
|
||||
func NewMediaCenterService(c Config) *MediaCenterService {
|
||||
return &MediaCenterService{
|
||||
url: c.Url,
|
||||
proId: c.ProId,
|
||||
secret: c.Secret,
|
||||
}
|
||||
}
|
||||
|
||||
func (m *MediaCenterService) getParams(p interface{}) (params map[string]interface{}) {
|
||||
req := structs.New(p)
|
||||
fields := req.Fields()
|
||||
params = make(map[string]interface{})
|
||||
for _, field := range fields {
|
||||
jsonTag := field.Tag("json")
|
||||
tagList := strings.Split(jsonTag, ",")
|
||||
key := field.Name()
|
||||
omitempty := ""
|
||||
if len(tagList) > 0 {
|
||||
key = tagList[0]
|
||||
}
|
||||
if len(tagList) > 1 {
|
||||
omitempty = tagList[1]
|
||||
}
|
||||
kind := reflect.TypeOf(field.Value()).Kind()
|
||||
// 如果是0值忽略或者空指针,不需要传
|
||||
if field.IsZero() && (kind == reflect.Ptr || omitempty == "omitempty") {
|
||||
continue
|
||||
}
|
||||
if kind == reflect.Ptr {
|
||||
// 通过指针取值
|
||||
params[key] = reflect.ValueOf(field.Value()).Elem().Interface()
|
||||
} else {
|
||||
params[key] = field.Value()
|
||||
}
|
||||
|
||||
}
|
||||
params["pro_id"] = m.proId
|
||||
params["sign"] = m.sign()
|
||||
return
|
||||
}
|
||||
|
||||
// TODO 暂时不需要加密
|
||||
func (m *MediaCenterService) sign() string {
|
||||
return ""
|
||||
}
|
||||
Reference in New Issue
Block a user