diff --git a/api/crm/TaobaoCrmMemberIdentityGet.go b/api/crm/TaobaoCrmMemberIdentityGet.go new file mode 100644 index 0000000000..b565f1de06 --- /dev/null +++ b/api/crm/TaobaoCrmMemberIdentityGet.go @@ -0,0 +1,14 @@ +package crm + +import ( + "github.com/bububa/opentaobao/core" + "github.com/bububa/opentaobao/model/crm" +) + +// TaobaoCrmMemberIdentityGet 会员身份识别 +// taobao.crm.member.identity.get +// +// 用来识别该用户是否是商家会员 +func TaobaoCrmMemberIdentityGet(clt *core.SDKClient, req *crm.TaobaoCrmMemberIdentityGetAPIRequest, resp *crm.TaobaoCrmMemberIdentityGetAPIResponse, session string) error { + return clt.Post(req, resp, session) +} diff --git a/api/crm/TaobaoCrmMemberJoinurlGet.go b/api/crm/TaobaoCrmMemberJoinurlGet.go new file mode 100644 index 0000000000..3f5ef7a4e0 --- /dev/null +++ b/api/crm/TaobaoCrmMemberJoinurlGet.go @@ -0,0 +1,14 @@ +package crm + +import ( + "github.com/bububa/opentaobao/core" + "github.com/bububa/opentaobao/model/crm" +) + +// TaobaoCrmMemberJoinurlGet 会员入会地址获取 +// taobao.crm.member.joinurl.get +// +// 会员入会地址获取 +func TaobaoCrmMemberJoinurlGet(clt *core.SDKClient, req *crm.TaobaoCrmMemberJoinurlGetAPIRequest, resp *crm.TaobaoCrmMemberJoinurlGetAPIResponse, session string) error { + return clt.Post(req, resp, session) +} diff --git a/api/crm/TaobaoCrmPointAvailableGet.go b/api/crm/TaobaoCrmPointAvailableGet.go new file mode 100644 index 0000000000..f654a04dc6 --- /dev/null +++ b/api/crm/TaobaoCrmPointAvailableGet.go @@ -0,0 +1,14 @@ +package crm + +import ( + "github.com/bububa/opentaobao/core" + "github.com/bububa/opentaobao/model/crm" +) + +// TaobaoCrmPointAvailableGet CRM会员积分查询开放接口 +// taobao.crm.point.available.get +// +// 查询用户在某个商家的可用积分数 +func TaobaoCrmPointAvailableGet(clt *core.SDKClient, req *crm.TaobaoCrmPointAvailableGetAPIRequest, resp *crm.TaobaoCrmPointAvailableGetAPIResponse, session string) error { + return clt.Post(req, resp, session) +} diff --git a/api/qianniu/TaobaoQianniuAutoTaskConfigCheck.go b/api/qianniu/TaobaoQianniuAutoTaskConfigCheck.go new file mode 100644 index 0000000000..1e7bd84788 --- /dev/null +++ b/api/qianniu/TaobaoQianniuAutoTaskConfigCheck.go @@ -0,0 +1,14 @@ +package qianniu + +import ( + "github.com/bububa/opentaobao/core" + "github.com/bububa/opentaobao/model/qianniu" +) + +// TaobaoQianniuAutoTaskConfigCheck 自动化任务设置校验 +// taobao.qianniu.auto.task.config.check +// +// 校验自动化任务配置 +func TaobaoQianniuAutoTaskConfigCheck(clt *core.SDKClient, req *qianniu.TaobaoQianniuAutoTaskConfigCheckAPIRequest, resp *qianniu.TaobaoQianniuAutoTaskConfigCheckAPIResponse, session string) error { + return clt.Post(req, resp, session) +} diff --git a/core/client.go b/core/client.go index 7f5338c61b..02f2786eae 100644 --- a/core/client.go +++ b/core/client.go @@ -25,6 +25,7 @@ type SDKClient struct { signMethod model.SignMethod // API 签名方法 debug bool // debug sandbox bool // 是否沙箱环境 + gateway string // 自定义网关 } // NewSDKClient 新建SDKClient @@ -72,6 +73,11 @@ func (c *SDKClient) SetSignMethod(method model.SignMethod) { c.signMethod = method } +// SetGateway 设置gateway +func (c *SDKClient) SetGateway(gateway string) { + c.gateway = gateway +} + // Post 发起请求 func (c *SDKClient) Post(req model.IRequest, resp model.IResponse, session string) error { // 新建API请求通用参数 @@ -96,7 +102,9 @@ func (c *SDKClient) Post(req model.IRequest, resp model.IResponse, session strin // post application/xml-www-form-urlencode func (c *SDKClient) post(req url.Values, resp model.IResponse) error { reqUrl := PRODUCT_GATEWAY - if c.sandbox { + if c.gateway != "" { + reqUrl = c.gateway + } else if c.sandbox { reqUrl = SANDBOX_GATEWAY } debug.PrintPostJSONRequest(reqUrl, req.Encode(), c.debug) @@ -224,7 +232,11 @@ func (c *SDKClient) sign(ret url.Values, commonReq *model.CommonRequest, req mod commonReq.GetParams(ret) req.GetApiParams(ret) keys := make([]string, 0, len(ret)) + params := req.GetRawParams() for k := range ret { + if v, ok := params[k]; ok && v.IsFile() { + continue + } keys = append(keys, k) } sort.Strings(keys) diff --git a/metadata/assets/json/aecreatives/aliexpress_affiliate_featuredpromo_get.json b/metadata/assets/json/aecreatives/aliexpress_affiliate_featuredpromo_get.json index 062392d22e..c876a86078 100755 --- a/metadata/assets/json/aecreatives/aliexpress_affiliate_featuredpromo_get.json +++ b/metadata/assets/json/aecreatives/aliexpress_affiliate_featuredpromo_get.json @@ -68,7 +68,7 @@ } ], "name": "resp_result", - "type": "ResponseDto", + "type": "TrafficFeaturedPromoResponseDto", "description": "返回结果" } ], diff --git a/metadata/assets/json/aecreatives/aliexpress_affiliate_productdetail_get.json b/metadata/assets/json/aecreatives/aliexpress_affiliate_productdetail_get.json index 1b774601b0..6db8565361 100755 --- a/metadata/assets/json/aecreatives/aliexpress_affiliate_productdetail_get.json +++ b/metadata/assets/json/aecreatives/aliexpress_affiliate_productdetail_get.json @@ -317,13 +317,13 @@ } ], "name": "result", - "type": "TrafficProductResultDto", + "type": "AffiliateProductResultDto", "description": "返回结果明细", "required": true } ], "name": "resp_result", - "type": "ResponseDto", + "type": "AffiliateProductResponseDto", "description": "返回结果" } ], diff --git a/metadata/assets/patch/crm/taobao_crm_member_identity_get.json b/metadata/assets/patch/crm/taobao_crm_member_identity_get.json new file mode 100644 index 0000000000..7eb8fe4dce --- /dev/null +++ b/metadata/assets/patch/crm/taobao_crm_member_identity_get.json @@ -0,0 +1,98 @@ +{ + "name": "taobao.crm.member.identity.get", + "apiChineseName": "会员身份识别", + "description": "用来识别该用户是否是商家会员", + "id": 34436, + "requestParams": [ + { + "name": "extra_info", + "type": "String", + "description": "扩展参数为JSON字符串,用于埋点统计,source为来源字段固定值 paiyangji代表来源派样机类型设备,deviceId 为设备id,itemId 相关商品id", + "required": false + }, + { + "name": "mix_nick", + "type": "String", + "description": "混淆昵称,", + "required": false + }, + { + "name": "nick", + "type": "String", + "description": "明文nick,可不填,直接填混淆昵称", + "required": false + }, + { + "name": "open_id", + "type": "String", + "description": "open_id", + "required": false + } + ], + "responseParams": [ + { + "name": "result", + "description": "result", + "subParams": [ + { + "name": "total", + "type": "Number", + "description": "total", + "required": false + }, + { + "name": "member_info", + "description": "result", + "subParams": [ + { + "name": "grade", + "type": "Number", + "description": "等级编号", + "subParams": [], + "required": false + }, + { + "name": "grade_name", + "type": "String", + "description": "等级名称", + "subParams": [], + "required": false + }, + { + "name": "gmt_create", + "type": "String", + "description": "gmtCreate", + "subParams": [], + "required": false + }, + { + "name": "bind_status", + "type": "Number", + "description": "bindStatus 1:绑卡(已经是线下会员线上未绑定,或者解绑后再绑定),2:注册", + "subParams": [], + "required": false + } + ], + "type": "MemberAccountDto", + "required": false + }, + { + "name": "code", + "type": "String", + "description": "code", + "subParams": [], + "required": false + }, + { + "name": "msg", + "type": "String", + "description": "msg", + "subParams": [], + "required": false + } + ], + "type": "ResultDto", + "required": false + } + ] +} \ No newline at end of file diff --git a/metadata/assets/patch/crm/taobao_crm_member_joinurl_get.json b/metadata/assets/patch/crm/taobao_crm_member_joinurl_get.json new file mode 100644 index 0000000000..351449f16d --- /dev/null +++ b/metadata/assets/patch/crm/taobao_crm_member_joinurl_get.json @@ -0,0 +1,65 @@ +{ + "name": "taobao.crm.member.joinurl.get", + "apiChineseName": "会员入会地址获取", + "description": "会员入会地址获取", + "id": 35156, + "requestParams": [ + { + "name": "callback_url", + "type": "String", + "description": "回调url", + "required": false + }, + { + "name": "extra_info", + "type": "String", + "description": "扩展参数为JSON字符串,用于埋点统计,source为来源字段固定值 isvapp可录入的其他参数,活动ID:activityId三方招募来源:entrance", + "required": true + } + ], + "responseParams": [ + { + "name": "result", + "type": "Result", + "description": "result", + "required": false, + "subParams": [ + { + "name": "total", + "type": "Number", + "description": "total", + "required": false + }, + { + "name": "result", + "type": "String", + "description": "返回入会地址URL,需自行判断协议头,如返回结果为\/\/建议使用https:\/\/", + "required": false + }, + { + "name": "error_code", + "type": "Number", + "description": "errorCode", + "required": false + }, + { + "name": "error_msg", + "type": "String", + "required": false + }, + { + "name": "success", + "type": "Boolean", + "description": "success", + "required": false + }, + { + "name": "exception_code", + "type": "String", + "description": "exceptionCode", + "required": false + } + ] + } + ] +} \ No newline at end of file diff --git a/metadata/assets/patch/crm/taobao_crm_point_available_get.json b/metadata/assets/patch/crm/taobao_crm_point_available_get.json new file mode 100644 index 0000000000..f0fc81efc1 --- /dev/null +++ b/metadata/assets/patch/crm/taobao_crm_point_available_get.json @@ -0,0 +1,34 @@ +{ + "name": "taobao.crm.point.available.get", + "apiChineseName": "CRM会员积分查询开放接口", + "description": "查询用户在某个商家的可用积分数", + "id": 42617, + "requestParams": [ + { + "name": "buyer_nick", + "description": "明文nick,可不填,直接填混淆昵称", + "type": "String", + "required": false + }, + { + "name": "mix_nick", + "description": "混淆昵称", + "type": "String", + "required": false + }, + { + "name": "open_uid", + "description": "买家openid", + "type": "String", + "required": false + } + ], + "responseParams": [ + { + "name": "result", + "description": "积分数", + "type": "Number", + "required": false + } + ] +} \ No newline at end of file diff --git a/metadata/assets/patch/qianniu/taobao_qianniu_auto_task_config_check.json b/metadata/assets/patch/qianniu/taobao_qianniu_auto_task_config_check.json new file mode 100644 index 0000000000..8d2b0d97fa --- /dev/null +++ b/metadata/assets/patch/qianniu/taobao_qianniu_auto_task_config_check.json @@ -0,0 +1,35 @@ +{ + "name": "taobao.qianniu.auto.task.config.check", + "apiChineseName": "自动化任务设置校验", + "description": "校验自动化任务配置", + "id": 53528, + "requestParams": [ + { + "name": "auto_task", + "type": "String", + "description": "场景,例如:催拍= RemindBuyBot" + } + ], + "responseParams": [ + { + "description": "是否成功", + "name": "rpc_success", + "type": "Boolean" + }, + { + "description": "success", + "name": "module", + "type": "Boolean" + }, + { + "description": "错误信息", + "name": "rpc_error_message", + "type": "String" + }, + { + "description": "错误码", + "name": "rpc_error_code", + "type": "Number" + } + ] +} \ No newline at end of file diff --git a/model/crm/MemberAccountDto.go b/model/crm/MemberAccountDto.go new file mode 100644 index 0000000000..d9a6e120a0 --- /dev/null +++ b/model/crm/MemberAccountDto.go @@ -0,0 +1,37 @@ +package crm + +import ( + "sync" +) + +// MemberAccountDto 结构体 +type MemberAccountDto struct { + // 等级名称 + GradeName string `json:"grade_name,omitempty" xml:"grade_name,omitempty"` + // gmtCreate + GmtCreate string `json:"gmt_create,omitempty" xml:"gmt_create,omitempty"` + // 等级编号 + Grade int64 `json:"grade,omitempty" xml:"grade,omitempty"` + // bindStatus 1:绑卡(已经是线下会员线上未绑定,或者解绑后再绑定),2:注册 + BindStatus int64 `json:"bind_status,omitempty" xml:"bind_status,omitempty"` +} + +var poolMemberAccountDto = sync.Pool{ + New: func() any { + return new(MemberAccountDto) + }, +} + +// GetMemberAccountDto() 从对象池中获取MemberAccountDto +func GetMemberAccountDto() *MemberAccountDto { + return poolMemberAccountDto.Get().(*MemberAccountDto) +} + +// ReleaseMemberAccountDto 释放MemberAccountDto +func ReleaseMemberAccountDto(v *MemberAccountDto) { + v.GradeName = "" + v.GmtCreate = "" + v.Grade = 0 + v.BindStatus = 0 + poolMemberAccountDto.Put(v) +} diff --git a/model/crm/TaobaoCrmMemberIdentityGetAPIRequest.go b/model/crm/TaobaoCrmMemberIdentityGetAPIRequest.go new file mode 100644 index 0000000000..f49adecae1 --- /dev/null +++ b/model/crm/TaobaoCrmMemberIdentityGetAPIRequest.go @@ -0,0 +1,126 @@ +package crm + +import ( + "net/url" + "sync" + + "github.com/bububa/opentaobao/model" +) + +// TaobaoCrmMemberIdentityGetAPIRequest 会员身份识别 API请求 +// taobao.crm.member.identity.get +// +// 用来识别该用户是否是商家会员 +type TaobaoCrmMemberIdentityGetAPIRequest struct { + model.Params + // 扩展参数为JSON字符串,用于埋点统计,source为来源字段固定值 paiyangji代表来源派样机类型设备,deviceId 为设备id,itemId 相关商品id + _extraInfo string + // 混淆昵称, + _mixNick string + // 明文nick,可不填,直接填混淆昵称 + _nick string + // open_id + _openId string +} + +// NewTaobaoCrmMemberIdentityGetRequest 初始化TaobaoCrmMemberIdentityGetAPIRequest对象 +func NewTaobaoCrmMemberIdentityGetRequest() *TaobaoCrmMemberIdentityGetAPIRequest { + return &TaobaoCrmMemberIdentityGetAPIRequest{ + Params: model.NewParams(4), + } +} + +// Reset IRequest interface 方法, 清空结构体 +func (r *TaobaoCrmMemberIdentityGetAPIRequest) Reset() { + r._extraInfo = "" + r._mixNick = "" + r._nick = "" + r._openId = "" + r.Params.ToZero() +} + +// GetApiMethodName IRequest interface 方法, 获取Api method +func (r TaobaoCrmMemberIdentityGetAPIRequest) GetApiMethodName() string { + return "taobao.crm.member.identity.get" +} + +// GetApiParams IRequest interface 方法, 获取API参数 +func (r TaobaoCrmMemberIdentityGetAPIRequest) GetApiParams(params url.Values) { + for k, v := range r.Params { + params.Set(k, v.String()) + } +} + +// GetRawParams IRequest interface 方法, 获取API原始参数 +func (r TaobaoCrmMemberIdentityGetAPIRequest) GetRawParams() model.Params { + return r.Params +} + +// SetExtraInfo is ExtraInfo Setter +// 扩展参数为JSON字符串,用于埋点统计,source为来源字段固定值 paiyangji代表来源派样机类型设备,deviceId 为设备id,itemId 相关商品id +func (r *TaobaoCrmMemberIdentityGetAPIRequest) SetExtraInfo(_extraInfo string) error { + r._extraInfo = _extraInfo + r.Set("extra_info", _extraInfo) + return nil +} + +// GetExtraInfo ExtraInfo Getter +func (r TaobaoCrmMemberIdentityGetAPIRequest) GetExtraInfo() string { + return r._extraInfo +} + +// SetMixNick is MixNick Setter +// 混淆昵称, +func (r *TaobaoCrmMemberIdentityGetAPIRequest) SetMixNick(_mixNick string) error { + r._mixNick = _mixNick + r.Set("mix_nick", _mixNick) + return nil +} + +// GetMixNick MixNick Getter +func (r TaobaoCrmMemberIdentityGetAPIRequest) GetMixNick() string { + return r._mixNick +} + +// SetNick is Nick Setter +// 明文nick,可不填,直接填混淆昵称 +func (r *TaobaoCrmMemberIdentityGetAPIRequest) SetNick(_nick string) error { + r._nick = _nick + r.Set("nick", _nick) + return nil +} + +// GetNick Nick Getter +func (r TaobaoCrmMemberIdentityGetAPIRequest) GetNick() string { + return r._nick +} + +// SetOpenId is OpenId Setter +// open_id +func (r *TaobaoCrmMemberIdentityGetAPIRequest) SetOpenId(_openId string) error { + r._openId = _openId + r.Set("open_id", _openId) + return nil +} + +// GetOpenId OpenId Getter +func (r TaobaoCrmMemberIdentityGetAPIRequest) GetOpenId() string { + return r._openId +} + +var poolTaobaoCrmMemberIdentityGetAPIRequest = sync.Pool{ + New: func() any { + return NewTaobaoCrmMemberIdentityGetRequest() + }, +} + +// GetTaobaoCrmMemberIdentityGetRequest 从 sync.Pool 获取 TaobaoCrmMemberIdentityGetAPIRequest +func GetTaobaoCrmMemberIdentityGetAPIRequest() *TaobaoCrmMemberIdentityGetAPIRequest { + return poolTaobaoCrmMemberIdentityGetAPIRequest.Get().(*TaobaoCrmMemberIdentityGetAPIRequest) +} + +// ReleaseTaobaoCrmMemberIdentityGetAPIRequest 将 TaobaoCrmMemberIdentityGetAPIRequest 放入 sync.Pool +func ReleaseTaobaoCrmMemberIdentityGetAPIRequest(v *TaobaoCrmMemberIdentityGetAPIRequest) { + v.Reset() + poolTaobaoCrmMemberIdentityGetAPIRequest.Put(v) +} diff --git a/model/crm/TaobaoCrmMemberIdentityGetAPIResponse.go b/model/crm/TaobaoCrmMemberIdentityGetAPIResponse.go new file mode 100644 index 0000000000..2ca8abd1b0 --- /dev/null +++ b/model/crm/TaobaoCrmMemberIdentityGetAPIResponse.go @@ -0,0 +1,55 @@ +package crm + +import ( + "encoding/xml" + "sync" + + "github.com/bububa/opentaobao/model" +) + +// TaobaoCrmMemberIdentityGetAPIResponse 会员身份识别 API返回值 +// taobao.crm.member.identity.get +// +// 用来识别该用户是否是商家会员 +type TaobaoCrmMemberIdentityGetAPIResponse struct { + model.CommonResponse + TaobaoCrmMemberIdentityGetAPIResponseModel +} + +// Reset 清空结构体 +func (m *TaobaoCrmMemberIdentityGetAPIResponse) Reset() { + (&m.CommonResponse).Reset() + (&m.TaobaoCrmMemberIdentityGetAPIResponseModel).Reset() +} + +// TaobaoCrmMemberIdentityGetAPIResponseModel is 会员身份识别 成功返回结果 +type TaobaoCrmMemberIdentityGetAPIResponseModel struct { + XMLName xml.Name `xml:"crm_member_identity_get_response"` + // 平台颁发的每次请求访问的唯一标识 + RequestId string `json:"request_id,omitempty" xml:"request_id,omitempty"` + // result + Result *TaobaoCrmMemberIdentityGetResultDto `json:"result,omitempty" xml:"result,omitempty"` +} + +// Reset 清空结构体 +func (m *TaobaoCrmMemberIdentityGetAPIResponseModel) Reset() { + m.RequestId = "" + m.Result = nil +} + +var poolTaobaoCrmMemberIdentityGetAPIResponse = sync.Pool{ + New: func() any { + return new(TaobaoCrmMemberIdentityGetAPIResponse) + }, +} + +// GetTaobaoCrmMemberIdentityGetAPIResponse 从 sync.Pool 获取 TaobaoCrmMemberIdentityGetAPIResponse +func GetTaobaoCrmMemberIdentityGetAPIResponse() *TaobaoCrmMemberIdentityGetAPIResponse { + return poolTaobaoCrmMemberIdentityGetAPIResponse.Get().(*TaobaoCrmMemberIdentityGetAPIResponse) +} + +// ReleaseTaobaoCrmMemberIdentityGetAPIResponse 将 TaobaoCrmMemberIdentityGetAPIResponse 保存到 sync.Pool +func ReleaseTaobaoCrmMemberIdentityGetAPIResponse(v *TaobaoCrmMemberIdentityGetAPIResponse) { + v.Reset() + poolTaobaoCrmMemberIdentityGetAPIResponse.Put(v) +} diff --git a/model/crm/TaobaoCrmMemberIdentityGetResultDto.go b/model/crm/TaobaoCrmMemberIdentityGetResultDto.go new file mode 100644 index 0000000000..e58f063022 --- /dev/null +++ b/model/crm/TaobaoCrmMemberIdentityGetResultDto.go @@ -0,0 +1,37 @@ +package crm + +import ( + "sync" +) + +// TaobaoCrmMemberIdentityGetResultDto 结构体 +type TaobaoCrmMemberIdentityGetResultDto struct { + // code + Code string `json:"code,omitempty" xml:"code,omitempty"` + // msg + Msg string `json:"msg,omitempty" xml:"msg,omitempty"` + // total + Total int64 `json:"total,omitempty" xml:"total,omitempty"` + // result + MemberInfo *MemberAccountDto `json:"member_info,omitempty" xml:"member_info,omitempty"` +} + +var poolTaobaoCrmMemberIdentityGetResultDto = sync.Pool{ + New: func() any { + return new(TaobaoCrmMemberIdentityGetResultDto) + }, +} + +// GetTaobaoCrmMemberIdentityGetResultDto() 从对象池中获取TaobaoCrmMemberIdentityGetResultDto +func GetTaobaoCrmMemberIdentityGetResultDto() *TaobaoCrmMemberIdentityGetResultDto { + return poolTaobaoCrmMemberIdentityGetResultDto.Get().(*TaobaoCrmMemberIdentityGetResultDto) +} + +// ReleaseTaobaoCrmMemberIdentityGetResultDto 释放TaobaoCrmMemberIdentityGetResultDto +func ReleaseTaobaoCrmMemberIdentityGetResultDto(v *TaobaoCrmMemberIdentityGetResultDto) { + v.Code = "" + v.Msg = "" + v.Total = 0 + v.MemberInfo = nil + poolTaobaoCrmMemberIdentityGetResultDto.Put(v) +} diff --git a/model/crm/TaobaoCrmMemberJoinurlGetAPIRequest.go b/model/crm/TaobaoCrmMemberJoinurlGetAPIRequest.go new file mode 100644 index 0000000000..2bdd79d9f3 --- /dev/null +++ b/model/crm/TaobaoCrmMemberJoinurlGetAPIRequest.go @@ -0,0 +1,94 @@ +package crm + +import ( + "net/url" + "sync" + + "github.com/bububa/opentaobao/model" +) + +// TaobaoCrmMemberJoinurlGetAPIRequest 会员入会地址获取 API请求 +// taobao.crm.member.joinurl.get +// +// 会员入会地址获取 +type TaobaoCrmMemberJoinurlGetAPIRequest struct { + model.Params + // 回调url + _callbackUrl string + // 扩展参数为JSON字符串,用于埋点统计,source为来源字段固定值 isvapp可录入的其他参数,活动ID:activityId三方招募来源:entrance + _extraInfo string +} + +// NewTaobaoCrmMemberJoinurlGetRequest 初始化TaobaoCrmMemberJoinurlGetAPIRequest对象 +func NewTaobaoCrmMemberJoinurlGetRequest() *TaobaoCrmMemberJoinurlGetAPIRequest { + return &TaobaoCrmMemberJoinurlGetAPIRequest{ + Params: model.NewParams(2), + } +} + +// Reset IRequest interface 方法, 清空结构体 +func (r *TaobaoCrmMemberJoinurlGetAPIRequest) Reset() { + r._callbackUrl = "" + r._extraInfo = "" + r.Params.ToZero() +} + +// GetApiMethodName IRequest interface 方法, 获取Api method +func (r TaobaoCrmMemberJoinurlGetAPIRequest) GetApiMethodName() string { + return "taobao.crm.member.joinurl.get" +} + +// GetApiParams IRequest interface 方法, 获取API参数 +func (r TaobaoCrmMemberJoinurlGetAPIRequest) GetApiParams(params url.Values) { + for k, v := range r.Params { + params.Set(k, v.String()) + } +} + +// GetRawParams IRequest interface 方法, 获取API原始参数 +func (r TaobaoCrmMemberJoinurlGetAPIRequest) GetRawParams() model.Params { + return r.Params +} + +// SetCallbackUrl is CallbackUrl Setter +// 回调url +func (r *TaobaoCrmMemberJoinurlGetAPIRequest) SetCallbackUrl(_callbackUrl string) error { + r._callbackUrl = _callbackUrl + r.Set("callback_url", _callbackUrl) + return nil +} + +// GetCallbackUrl CallbackUrl Getter +func (r TaobaoCrmMemberJoinurlGetAPIRequest) GetCallbackUrl() string { + return r._callbackUrl +} + +// SetExtraInfo is ExtraInfo Setter +// 扩展参数为JSON字符串,用于埋点统计,source为来源字段固定值 isvapp可录入的其他参数,活动ID:activityId三方招募来源:entrance +func (r *TaobaoCrmMemberJoinurlGetAPIRequest) SetExtraInfo(_extraInfo string) error { + r._extraInfo = _extraInfo + r.Set("extra_info", _extraInfo) + return nil +} + +// GetExtraInfo ExtraInfo Getter +func (r TaobaoCrmMemberJoinurlGetAPIRequest) GetExtraInfo() string { + return r._extraInfo +} + +var poolTaobaoCrmMemberJoinurlGetAPIRequest = sync.Pool{ + New: func() any { + return NewTaobaoCrmMemberJoinurlGetRequest() + }, +} + +// GetTaobaoCrmMemberJoinurlGetRequest 从 sync.Pool 获取 TaobaoCrmMemberJoinurlGetAPIRequest +func GetTaobaoCrmMemberJoinurlGetAPIRequest() *TaobaoCrmMemberJoinurlGetAPIRequest { + return poolTaobaoCrmMemberJoinurlGetAPIRequest.Get().(*TaobaoCrmMemberJoinurlGetAPIRequest) +} + +// ReleaseTaobaoCrmMemberJoinurlGetAPIRequest 将 TaobaoCrmMemberJoinurlGetAPIRequest 放入 sync.Pool +func ReleaseTaobaoCrmMemberJoinurlGetAPIRequest(v *TaobaoCrmMemberJoinurlGetAPIRequest) { + v.Reset() + poolTaobaoCrmMemberJoinurlGetAPIRequest.Put(v) +} diff --git a/model/crm/TaobaoCrmMemberJoinurlGetAPIResponse.go b/model/crm/TaobaoCrmMemberJoinurlGetAPIResponse.go new file mode 100644 index 0000000000..3a224852d8 --- /dev/null +++ b/model/crm/TaobaoCrmMemberJoinurlGetAPIResponse.go @@ -0,0 +1,55 @@ +package crm + +import ( + "encoding/xml" + "sync" + + "github.com/bububa/opentaobao/model" +) + +// TaobaoCrmMemberJoinurlGetAPIResponse 会员入会地址获取 API返回值 +// taobao.crm.member.joinurl.get +// +// 会员入会地址获取 +type TaobaoCrmMemberJoinurlGetAPIResponse struct { + model.CommonResponse + TaobaoCrmMemberJoinurlGetAPIResponseModel +} + +// Reset 清空结构体 +func (m *TaobaoCrmMemberJoinurlGetAPIResponse) Reset() { + (&m.CommonResponse).Reset() + (&m.TaobaoCrmMemberJoinurlGetAPIResponseModel).Reset() +} + +// TaobaoCrmMemberJoinurlGetAPIResponseModel is 会员入会地址获取 成功返回结果 +type TaobaoCrmMemberJoinurlGetAPIResponseModel struct { + XMLName xml.Name `xml:"crm_member_joinurl_get_response"` + // 平台颁发的每次请求访问的唯一标识 + RequestId string `json:"request_id,omitempty" xml:"request_id,omitempty"` + // result + Result *TaobaoCrmMemberJoinurlGetResult `json:"result,omitempty" xml:"result,omitempty"` +} + +// Reset 清空结构体 +func (m *TaobaoCrmMemberJoinurlGetAPIResponseModel) Reset() { + m.RequestId = "" + m.Result = nil +} + +var poolTaobaoCrmMemberJoinurlGetAPIResponse = sync.Pool{ + New: func() any { + return new(TaobaoCrmMemberJoinurlGetAPIResponse) + }, +} + +// GetTaobaoCrmMemberJoinurlGetAPIResponse 从 sync.Pool 获取 TaobaoCrmMemberJoinurlGetAPIResponse +func GetTaobaoCrmMemberJoinurlGetAPIResponse() *TaobaoCrmMemberJoinurlGetAPIResponse { + return poolTaobaoCrmMemberJoinurlGetAPIResponse.Get().(*TaobaoCrmMemberJoinurlGetAPIResponse) +} + +// ReleaseTaobaoCrmMemberJoinurlGetAPIResponse 将 TaobaoCrmMemberJoinurlGetAPIResponse 保存到 sync.Pool +func ReleaseTaobaoCrmMemberJoinurlGetAPIResponse(v *TaobaoCrmMemberJoinurlGetAPIResponse) { + v.Reset() + poolTaobaoCrmMemberJoinurlGetAPIResponse.Put(v) +} diff --git a/model/crm/TaobaoCrmMemberJoinurlGetResult.go b/model/crm/TaobaoCrmMemberJoinurlGetResult.go new file mode 100644 index 0000000000..fc9222baf6 --- /dev/null +++ b/model/crm/TaobaoCrmMemberJoinurlGetResult.go @@ -0,0 +1,43 @@ +package crm + +import ( + "sync" +) + +// TaobaoCrmMemberJoinurlGetResult 结构体 +type TaobaoCrmMemberJoinurlGetResult struct { + // 返回入会地址URL,需自行判断协议头,如返回结果为//建议使用https:// + Result string `json:"result,omitempty" xml:"result,omitempty"` + // + ErrorMsg string `json:"error_msg,omitempty" xml:"error_msg,omitempty"` + // exceptionCode + ExceptionCode string `json:"exception_code,omitempty" xml:"exception_code,omitempty"` + // total + Total int64 `json:"total,omitempty" xml:"total,omitempty"` + // errorCode + ErrorCode int64 `json:"error_code,omitempty" xml:"error_code,omitempty"` + // success + Success bool `json:"success,omitempty" xml:"success,omitempty"` +} + +var poolTaobaoCrmMemberJoinurlGetResult = sync.Pool{ + New: func() any { + return new(TaobaoCrmMemberJoinurlGetResult) + }, +} + +// GetTaobaoCrmMemberJoinurlGetResult() 从对象池中获取TaobaoCrmMemberJoinurlGetResult +func GetTaobaoCrmMemberJoinurlGetResult() *TaobaoCrmMemberJoinurlGetResult { + return poolTaobaoCrmMemberJoinurlGetResult.Get().(*TaobaoCrmMemberJoinurlGetResult) +} + +// ReleaseTaobaoCrmMemberJoinurlGetResult 释放TaobaoCrmMemberJoinurlGetResult +func ReleaseTaobaoCrmMemberJoinurlGetResult(v *TaobaoCrmMemberJoinurlGetResult) { + v.Result = "" + v.ErrorMsg = "" + v.ExceptionCode = "" + v.Total = 0 + v.ErrorCode = 0 + v.Success = false + poolTaobaoCrmMemberJoinurlGetResult.Put(v) +} diff --git a/model/crm/TaobaoCrmPointAvailableGetAPIRequest.go b/model/crm/TaobaoCrmPointAvailableGetAPIRequest.go new file mode 100644 index 0000000000..f88f7b3426 --- /dev/null +++ b/model/crm/TaobaoCrmPointAvailableGetAPIRequest.go @@ -0,0 +1,110 @@ +package crm + +import ( + "net/url" + "sync" + + "github.com/bububa/opentaobao/model" +) + +// TaobaoCrmPointAvailableGetAPIRequest CRM会员积分查询开放接口 API请求 +// taobao.crm.point.available.get +// +// 查询用户在某个商家的可用积分数 +type TaobaoCrmPointAvailableGetAPIRequest struct { + model.Params + // 明文nick,可不填,直接填混淆昵称 + _buyerNick string + // 混淆昵称 + _mixNick string + // 买家openid + _openUid string +} + +// NewTaobaoCrmPointAvailableGetRequest 初始化TaobaoCrmPointAvailableGetAPIRequest对象 +func NewTaobaoCrmPointAvailableGetRequest() *TaobaoCrmPointAvailableGetAPIRequest { + return &TaobaoCrmPointAvailableGetAPIRequest{ + Params: model.NewParams(3), + } +} + +// Reset IRequest interface 方法, 清空结构体 +func (r *TaobaoCrmPointAvailableGetAPIRequest) Reset() { + r._buyerNick = "" + r._mixNick = "" + r._openUid = "" + r.Params.ToZero() +} + +// GetApiMethodName IRequest interface 方法, 获取Api method +func (r TaobaoCrmPointAvailableGetAPIRequest) GetApiMethodName() string { + return "taobao.crm.point.available.get" +} + +// GetApiParams IRequest interface 方法, 获取API参数 +func (r TaobaoCrmPointAvailableGetAPIRequest) GetApiParams(params url.Values) { + for k, v := range r.Params { + params.Set(k, v.String()) + } +} + +// GetRawParams IRequest interface 方法, 获取API原始参数 +func (r TaobaoCrmPointAvailableGetAPIRequest) GetRawParams() model.Params { + return r.Params +} + +// SetBuyerNick is BuyerNick Setter +// 明文nick,可不填,直接填混淆昵称 +func (r *TaobaoCrmPointAvailableGetAPIRequest) SetBuyerNick(_buyerNick string) error { + r._buyerNick = _buyerNick + r.Set("buyer_nick", _buyerNick) + return nil +} + +// GetBuyerNick BuyerNick Getter +func (r TaobaoCrmPointAvailableGetAPIRequest) GetBuyerNick() string { + return r._buyerNick +} + +// SetMixNick is MixNick Setter +// 混淆昵称 +func (r *TaobaoCrmPointAvailableGetAPIRequest) SetMixNick(_mixNick string) error { + r._mixNick = _mixNick + r.Set("mix_nick", _mixNick) + return nil +} + +// GetMixNick MixNick Getter +func (r TaobaoCrmPointAvailableGetAPIRequest) GetMixNick() string { + return r._mixNick +} + +// SetOpenUid is OpenUid Setter +// 买家openid +func (r *TaobaoCrmPointAvailableGetAPIRequest) SetOpenUid(_openUid string) error { + r._openUid = _openUid + r.Set("open_uid", _openUid) + return nil +} + +// GetOpenUid OpenUid Getter +func (r TaobaoCrmPointAvailableGetAPIRequest) GetOpenUid() string { + return r._openUid +} + +var poolTaobaoCrmPointAvailableGetAPIRequest = sync.Pool{ + New: func() any { + return NewTaobaoCrmPointAvailableGetRequest() + }, +} + +// GetTaobaoCrmPointAvailableGetRequest 从 sync.Pool 获取 TaobaoCrmPointAvailableGetAPIRequest +func GetTaobaoCrmPointAvailableGetAPIRequest() *TaobaoCrmPointAvailableGetAPIRequest { + return poolTaobaoCrmPointAvailableGetAPIRequest.Get().(*TaobaoCrmPointAvailableGetAPIRequest) +} + +// ReleaseTaobaoCrmPointAvailableGetAPIRequest 将 TaobaoCrmPointAvailableGetAPIRequest 放入 sync.Pool +func ReleaseTaobaoCrmPointAvailableGetAPIRequest(v *TaobaoCrmPointAvailableGetAPIRequest) { + v.Reset() + poolTaobaoCrmPointAvailableGetAPIRequest.Put(v) +} diff --git a/model/crm/TaobaoCrmPointAvailableGetAPIResponse.go b/model/crm/TaobaoCrmPointAvailableGetAPIResponse.go new file mode 100644 index 0000000000..f8dde00412 --- /dev/null +++ b/model/crm/TaobaoCrmPointAvailableGetAPIResponse.go @@ -0,0 +1,55 @@ +package crm + +import ( + "encoding/xml" + "sync" + + "github.com/bububa/opentaobao/model" +) + +// TaobaoCrmPointAvailableGetAPIResponse CRM会员积分查询开放接口 API返回值 +// taobao.crm.point.available.get +// +// 查询用户在某个商家的可用积分数 +type TaobaoCrmPointAvailableGetAPIResponse struct { + model.CommonResponse + TaobaoCrmPointAvailableGetAPIResponseModel +} + +// Reset 清空结构体 +func (m *TaobaoCrmPointAvailableGetAPIResponse) Reset() { + (&m.CommonResponse).Reset() + (&m.TaobaoCrmPointAvailableGetAPIResponseModel).Reset() +} + +// TaobaoCrmPointAvailableGetAPIResponseModel is CRM会员积分查询开放接口 成功返回结果 +type TaobaoCrmPointAvailableGetAPIResponseModel struct { + XMLName xml.Name `xml:"crm_point_available_get_response"` + // 平台颁发的每次请求访问的唯一标识 + RequestId string `json:"request_id,omitempty" xml:"request_id,omitempty"` + // 积分数 + Result int64 `json:"result,omitempty" xml:"result,omitempty"` +} + +// Reset 清空结构体 +func (m *TaobaoCrmPointAvailableGetAPIResponseModel) Reset() { + m.RequestId = "" + m.Result = 0 +} + +var poolTaobaoCrmPointAvailableGetAPIResponse = sync.Pool{ + New: func() any { + return new(TaobaoCrmPointAvailableGetAPIResponse) + }, +} + +// GetTaobaoCrmPointAvailableGetAPIResponse 从 sync.Pool 获取 TaobaoCrmPointAvailableGetAPIResponse +func GetTaobaoCrmPointAvailableGetAPIResponse() *TaobaoCrmPointAvailableGetAPIResponse { + return poolTaobaoCrmPointAvailableGetAPIResponse.Get().(*TaobaoCrmPointAvailableGetAPIResponse) +} + +// ReleaseTaobaoCrmPointAvailableGetAPIResponse 将 TaobaoCrmPointAvailableGetAPIResponse 保存到 sync.Pool +func ReleaseTaobaoCrmPointAvailableGetAPIResponse(v *TaobaoCrmPointAvailableGetAPIResponse) { + v.Reset() + poolTaobaoCrmPointAvailableGetAPIResponse.Put(v) +} diff --git a/model/param.go b/model/param.go index 77c8d631b6..f0a57d716f 100644 --- a/model/param.go +++ b/model/param.go @@ -5,6 +5,7 @@ import ( "fmt" "io" "strconv" + "strings" ) // File 用于上传文件,对应淘宝API中byte[]类型 @@ -117,6 +118,8 @@ func AnyToString(val interface{}) (string, error) { } case float64: str = strconv.FormatFloat(val.(float64), 'f', -1, 64) + case []string: + str = strings.Join(val.([]string), ",") case *File: if val == nil { return "file", nil diff --git a/model/qianniu/TaobaoQianniuAutoTaskConfigCheckAPIRequest.go b/model/qianniu/TaobaoQianniuAutoTaskConfigCheckAPIRequest.go new file mode 100644 index 0000000000..e3c7754f24 --- /dev/null +++ b/model/qianniu/TaobaoQianniuAutoTaskConfigCheckAPIRequest.go @@ -0,0 +1,78 @@ +package qianniu + +import ( + "net/url" + "sync" + + "github.com/bububa/opentaobao/model" +) + +// TaobaoQianniuAutoTaskConfigCheckAPIRequest 自动化任务设置校验 API请求 +// taobao.qianniu.auto.task.config.check +// +// 校验自动化任务配置 +type TaobaoQianniuAutoTaskConfigCheckAPIRequest struct { + model.Params + // 场景,例如:催拍= RemindBuyBot + _autoTask string +} + +// NewTaobaoQianniuAutoTaskConfigCheckRequest 初始化TaobaoQianniuAutoTaskConfigCheckAPIRequest对象 +func NewTaobaoQianniuAutoTaskConfigCheckRequest() *TaobaoQianniuAutoTaskConfigCheckAPIRequest { + return &TaobaoQianniuAutoTaskConfigCheckAPIRequest{ + Params: model.NewParams(1), + } +} + +// Reset IRequest interface 方法, 清空结构体 +func (r *TaobaoQianniuAutoTaskConfigCheckAPIRequest) Reset() { + r._autoTask = "" + r.Params.ToZero() +} + +// GetApiMethodName IRequest interface 方法, 获取Api method +func (r TaobaoQianniuAutoTaskConfigCheckAPIRequest) GetApiMethodName() string { + return "taobao.qianniu.auto.task.config.check" +} + +// GetApiParams IRequest interface 方法, 获取API参数 +func (r TaobaoQianniuAutoTaskConfigCheckAPIRequest) GetApiParams(params url.Values) { + for k, v := range r.Params { + params.Set(k, v.String()) + } +} + +// GetRawParams IRequest interface 方法, 获取API原始参数 +func (r TaobaoQianniuAutoTaskConfigCheckAPIRequest) GetRawParams() model.Params { + return r.Params +} + +// SetAutoTask is AutoTask Setter +// 场景,例如:催拍= RemindBuyBot +func (r *TaobaoQianniuAutoTaskConfigCheckAPIRequest) SetAutoTask(_autoTask string) error { + r._autoTask = _autoTask + r.Set("auto_task", _autoTask) + return nil +} + +// GetAutoTask AutoTask Getter +func (r TaobaoQianniuAutoTaskConfigCheckAPIRequest) GetAutoTask() string { + return r._autoTask +} + +var poolTaobaoQianniuAutoTaskConfigCheckAPIRequest = sync.Pool{ + New: func() any { + return NewTaobaoQianniuAutoTaskConfigCheckRequest() + }, +} + +// GetTaobaoQianniuAutoTaskConfigCheckRequest 从 sync.Pool 获取 TaobaoQianniuAutoTaskConfigCheckAPIRequest +func GetTaobaoQianniuAutoTaskConfigCheckAPIRequest() *TaobaoQianniuAutoTaskConfigCheckAPIRequest { + return poolTaobaoQianniuAutoTaskConfigCheckAPIRequest.Get().(*TaobaoQianniuAutoTaskConfigCheckAPIRequest) +} + +// ReleaseTaobaoQianniuAutoTaskConfigCheckAPIRequest 将 TaobaoQianniuAutoTaskConfigCheckAPIRequest 放入 sync.Pool +func ReleaseTaobaoQianniuAutoTaskConfigCheckAPIRequest(v *TaobaoQianniuAutoTaskConfigCheckAPIRequest) { + v.Reset() + poolTaobaoQianniuAutoTaskConfigCheckAPIRequest.Put(v) +} diff --git a/model/qianniu/TaobaoQianniuAutoTaskConfigCheckAPIResponse.go b/model/qianniu/TaobaoQianniuAutoTaskConfigCheckAPIResponse.go new file mode 100644 index 0000000000..cdc7cabf4d --- /dev/null +++ b/model/qianniu/TaobaoQianniuAutoTaskConfigCheckAPIResponse.go @@ -0,0 +1,64 @@ +package qianniu + +import ( + "encoding/xml" + "sync" + + "github.com/bububa/opentaobao/model" +) + +// TaobaoQianniuAutoTaskConfigCheckAPIResponse 自动化任务设置校验 API返回值 +// taobao.qianniu.auto.task.config.check +// +// 校验自动化任务配置 +type TaobaoQianniuAutoTaskConfigCheckAPIResponse struct { + model.CommonResponse + TaobaoQianniuAutoTaskConfigCheckAPIResponseModel +} + +// Reset 清空结构体 +func (m *TaobaoQianniuAutoTaskConfigCheckAPIResponse) Reset() { + (&m.CommonResponse).Reset() + (&m.TaobaoQianniuAutoTaskConfigCheckAPIResponseModel).Reset() +} + +// TaobaoQianniuAutoTaskConfigCheckAPIResponseModel is 自动化任务设置校验 成功返回结果 +type TaobaoQianniuAutoTaskConfigCheckAPIResponseModel struct { + XMLName xml.Name `xml:"qianniu_auto_task_config_check_response"` + // 平台颁发的每次请求访问的唯一标识 + RequestId string `json:"request_id,omitempty" xml:"request_id,omitempty"` + // 错误信息 + RpcErrorMessage string `json:"rpc_error_message,omitempty" xml:"rpc_error_message,omitempty"` + // 错误码 + RpcErrorCode int64 `json:"rpc_error_code,omitempty" xml:"rpc_error_code,omitempty"` + // 是否成功 + RpcSuccess bool `json:"rpc_success,omitempty" xml:"rpc_success,omitempty"` + // success + Module bool `json:"module,omitempty" xml:"module,omitempty"` +} + +// Reset 清空结构体 +func (m *TaobaoQianniuAutoTaskConfigCheckAPIResponseModel) Reset() { + m.RequestId = "" + m.RpcErrorMessage = "" + m.RpcErrorCode = 0 + m.RpcSuccess = false + m.Module = false +} + +var poolTaobaoQianniuAutoTaskConfigCheckAPIResponse = sync.Pool{ + New: func() any { + return new(TaobaoQianniuAutoTaskConfigCheckAPIResponse) + }, +} + +// GetTaobaoQianniuAutoTaskConfigCheckAPIResponse 从 sync.Pool 获取 TaobaoQianniuAutoTaskConfigCheckAPIResponse +func GetTaobaoQianniuAutoTaskConfigCheckAPIResponse() *TaobaoQianniuAutoTaskConfigCheckAPIResponse { + return poolTaobaoQianniuAutoTaskConfigCheckAPIResponse.Get().(*TaobaoQianniuAutoTaskConfigCheckAPIResponse) +} + +// ReleaseTaobaoQianniuAutoTaskConfigCheckAPIResponse 将 TaobaoQianniuAutoTaskConfigCheckAPIResponse 保存到 sync.Pool +func ReleaseTaobaoQianniuAutoTaskConfigCheckAPIResponse(v *TaobaoQianniuAutoTaskConfigCheckAPIResponse) { + v.Reset() + poolTaobaoQianniuAutoTaskConfigCheckAPIResponse.Put(v) +}