diff --git a/platformapi/tao_vegetable/api_token.go b/platformapi/tao_vegetable/api_token.go new file mode 100644 index 00000000..749d83ea --- /dev/null +++ b/platformapi/tao_vegetable/api_token.go @@ -0,0 +1,41 @@ +package tao_vegetable + +import ( + "encoding/json" + "git.rosy.net.cn/baseapi/utils" + "git.rosy.net.cn/jx-callback/globals" + "topsdk" + "topsdk/ability304" + "topsdk/ability304/request" +) + +const ( + AppKey = "34402634" + AppSecret = "fda9a7045262e3aa1f26ca508a9be242" + ServerUrl = "https://eco.taobao.com/router/rest" +) + +func NewTaoVegetable(appKey, appSecret, serverUrl string) API { + return API{client: topsdk.NewDefaultTopClient(appKey, appSecret, serverUrl, 2000, 2000)} +} + +type API struct { + client topsdk.TopClient +} + +func (a API) GetStoreToken(code, uuId string) (*StoreTokenInfo, error) { + param := &request.TaobaoTopAuthTokenCreateRequest{ + Code: &code, + } + data, err := ability304.NewAbility304(&a.client).TaobaoTopAuthTokenCreate(param) + globals.SugarLogger.Debugf("token := %s", utils.Format4Output(data, false)) + if err != nil { + return nil, err + } + + var token *StoreTokenInfo + if err := json.Unmarshal([]byte(data.TokenResult), &token); err != nil { + return nil, err + } + return token, err +} diff --git a/platformapi/tao_vegetable/model.go b/platformapi/tao_vegetable/model.go index 31b42839..6f184802 100644 --- a/platformapi/tao_vegetable/model.go +++ b/platformapi/tao_vegetable/model.go @@ -1,9 +1,17 @@ package tao_vegetable -// ShopCode 商户code解析 -type ShopCode struct { - ResponseType string `json:"response_type"` // 授权类型 code - Sp string `json:"sp"` // 业务线 hema - Op string `json:"op"` // 业务线 topApp - ClientId string `json:"client_id"` // appKey +// StoreTokenInfo 信息解析 +type StoreTokenInfo struct { + W2Valid int64 `json:"w2_valid"` + R1Valid int64 `json:"r1_valid"` + Sp string `json:"sp"` + R2Valid int64 `json:"r2_valid"` + W1Valid int64 `json:"w1_valid"` + Locale string `json:"locale"` + UserId string `json:"user_id"` + ExpireTime int64 `json:"expire_time"` + RefreshToken string `json:"refresh_token"` + UserNick string `json:"user_nick"` + RefreshTokenValidTime int64 `json:"refresh_token_valid_time"` + AccessToken string `json:"access_token"` } diff --git a/platformapi/tao_vegetable/store_categary.go b/platformapi/tao_vegetable/store_categary.go new file mode 100644 index 00000000..f58d2b23 --- /dev/null +++ b/platformapi/tao_vegetable/store_categary.go @@ -0,0 +1,44 @@ +package tao_vegetable + +import ( + "encoding/json" + "fmt" + "topsdk/ability587" + "topsdk/ability587/domain" + "topsdk/ability587/request" +) + +func (a API) GetStoreCategoryInfo(code string) (*CategoryInfo, error) { + a.client.ServerUrl = "https://eco.taobao.com/router/rest/alibaba.wdk.sku.category.query" + storeCategory := ability587.NewAbility587(&a.client) + resp, err := storeCategory.AlibabaWdkSkuCategoryQuery(&request.AlibabaWdkSkuCategoryQueryRequest{Param: &domain.AlibabaWdkSkuCategoryQueryCategoryDo{Code: &code}}, "") + if err != nil { + return nil, err + } + if resp.Result.ErrMsg != nil { + return nil, fmt.Errorf("requestId:" + resp.RequestId + "msg:" + *resp.Result.ErrMsg) + } + var info *CategoryInfo + if err := json.Unmarshal([]byte(*resp.Result.Model), &info); err != nil { + return nil, err + } + + return info, nil +} + +func (a API) AddStoreCategoryInfo(param *request.AlibabaWdkSkuCategoryAddRequest) (*CategoryInfo, error) { + storeCategory := ability587.NewAbility587(&a.client) + resp, err := storeCategory.AlibabaWdkSkuCategoryAdd(param, "258adasdad222aa") + if err != nil { + return nil, err + } + if resp.Result.ErrMsg != nil { + return nil, fmt.Errorf("requestId:" + resp.RequestId + "msg:" + *resp.Result.ErrMsg) + } + var info *CategoryInfo + if err := json.Unmarshal([]byte(*resp.Result.Model), &info); err != nil { + return nil, err + } + + return info, nil +} diff --git a/platformapi/tao_vegetable/store_info.go b/platformapi/tao_vegetable/store_info.go new file mode 100644 index 00000000..8573e958 --- /dev/null +++ b/platformapi/tao_vegetable/store_info.go @@ -0,0 +1,30 @@ +package tao_vegetable + +type CategoryInfo struct { + Code string `json:"code"` // 类目编码 + Name string `json:"name"` // 类目名称 + Leaf string `json:"leaf"` // 是否叶子结点 + SortOrder string `json:"sortOrder"` // 排序值 + Desc string `json:"desc"` // 详细描述 + ChildCategorys string `json:"childCategorys"` // 子节点信息 + ForestId string `json:"forestId"` // 类目id + ParentForestId string `json:"parentForestId"` // 父节点id +} + +//func (a API) QueryStoreDetailsList() { +// a.client.ServerUrl = "qimen.taobao.qimen.pos.store.get" +// storeCategory := ability587.NewAbility587(&a.client) +// resp, err := storeCategory.AlibabaWdkSkuCategoryQuery(&request.AlibabaWdkSkuCategoryQueryRequest{Param: &domain.AlibabaWdkSkuCategoryQueryCategoryDo{Code: &code}}, "") +// if err != nil { +// return nil, err +// } +// if resp.Result.ErrMsg != nil { +// return nil, fmt.Errorf("requestId:" + resp.RequestId + "msg:" + *resp.Result.ErrMsg) +// } +// var info *CategoryInfo +// if err := json.Unmarshal([]byte(*resp.Result.Model), &info); err != nil { +// return nil, err +// } +// +// return info, nil +//} diff --git a/platformapi/tao_vegetable/store_test.go b/platformapi/tao_vegetable/store_test.go new file mode 100644 index 00000000..610326ae --- /dev/null +++ b/platformapi/tao_vegetable/store_test.go @@ -0,0 +1,42 @@ +package tao_vegetable + +import ( + "git.rosy.net.cn/baseapi" + "git.rosy.net.cn/baseapi/utils" + "git.rosy.net.cn/jx-callback/globals" + "go.uber.org/zap" + "testing" + "topsdk/ability587/domain" + "topsdk/ability587/request" +) + +var ( + apiTao API + sugarLogger *zap.SugaredLogger +) + +func init() { + apiTao = NewTaoVegetable(AppKey, AppSecret, ServerUrl) + + logger, _ := zap.NewDevelopment() + sugarLogger = logger.Sugar() + baseapi.Init(sugarLogger) +} +func TestGetStoreCategory(t *testing.T) { + data, err := apiTao.GetStoreCategoryInfo("11111") + globals.SugarLogger.Debugf("data := %s", utils.Format4Output(data, false)) + globals.SugarLogger.Debugf("err := %s", utils.Format4Output(err, false)) +} + +func TestAddCategory(t *testing.T) { + data, err := apiTao.AddStoreCategoryInfo(&request.AlibabaWdkSkuCategoryAddRequest{Param: &domain.AlibabaWdkSkuCategoryAddCategoryDo{ + Code: utils.String2Pointer("1111"), + Name: utils.String2Pointer("1111"), + ParentCode: utils.String2Pointer("1111"), + Leaf: utils.Bool2Point(false), + Desc: utils.String2Pointer("1111"), + SortOrder: utils.Int64ToPointer(1), + }}) + globals.SugarLogger.Debugf("data := %s", utils.Format4Output(data, false)) + globals.SugarLogger.Debugf("err := %s", utils.Format4Output(err, false)) +} diff --git a/platformapi/tao_vegetable/tao_consts.go b/platformapi/tao_vegetable/tao_consts.go new file mode 100644 index 00000000..ac30674c --- /dev/null +++ b/platformapi/tao_vegetable/tao_consts.go @@ -0,0 +1,5 @@ +package tao_vegetable + +const ( + AddStoreCategoryApi = "alibaba.wdk.sku.category.add" +) diff --git a/utils/typeconv.go b/utils/typeconv.go index 32e42cfd..13b812cc 100644 --- a/utils/typeconv.go +++ b/utils/typeconv.go @@ -223,6 +223,10 @@ func Bool2Int(value bool) int { return 0 } +func Bool2Point(value bool) *bool { + return &value +} + func Str2Int64WithDefault(str string, defValue int64) int64 { retVal, err := strconv.ParseInt(str, 10, 64) if err != nil {