Files
huangguo_server/common/mediaCenter/base.go
T
rootandClaude Opus 5 8679200f41 Initial commit
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 13:57:10 +08:00

67 lines
1.3 KiB
Go

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 ""
}