Files
baseapi/platformapi/gome_live_show/goods.go

196 lines
5.2 KiB
Go

package gome_live_show
import (
"encoding/json"
"errors"
"git.rosy.net.cn/baseapi/utils"
"net/http"
)
// 获取商品品类信息查询
func (a *API) GetGoodsCategoryList() (goodsCategory *GoodsCategoryListRes, err error) {
goodsCategoryMap, err := a.AccessAPI(gomeUrl, GoodsCategoryApi, http.MethodPost, utils.Struct2FlatMap(a.MakeRequestParam(nil)))
if err != nil {
return nil, err
}
result := &GoodsCategoryListRes{}
if err := utils.Map2StructByJson(goodsCategoryMap, result, false); err != nil {
return nil, err
}
if result.Code != 200 {
return nil, errors.New(result.Message)
}
return result, nil
}
//
//// 查询所有的商品规格
//func (a *API) QueryGoodsSizeListAll(param *QueryGoodsSpecSizeReq) {
// param.PageNumber = 1
// param.PageSize = 50
// result, err := a.QueryGoodsSizeList(param)
// if err != nil {
// return nil, err
// }
//
// for ; pageNo <= result.Data.Total/pageSize+1; pageNo++ {
// result2, err := getAPI(string(model.VendorGoMei)).QueryGoodsListById(&gomei.QueryGoodsListForStoreReq{
// Page: gomei.Page{
// PageNumber: pageNo,
// PageSize: pageSize,
// },
// })
// if err != nil {
// return nil, err
// }
//
// for _, v := range result2.Data.Records {
// if skuName := vendorSku2Jx2(v); skuName != nil {
// skuNameList = append(skuNameList, skuName)
// }
// }
// }
//
// return skuNameList, err
// reslut, err := a.QueryGoodsSizeList(param)
//
//}
//jsonMarshal,err := json.Marshal(gomeResult)
//if err != nil {
//return nil, err
//}
//if err := json.Unmarshal(jsonMarshal,data);err != nil {
//return nil, err
//}
// 查询商品规格
func (a *API) QueryGoodsSizeList(param *QueryGoodsSpecSizeReq) (result *QueryGoodsSpecSizeRes, err error) {
reqByte, err := json.Marshal(param)
if err != nil {
return
}
gomeResult, err := a.AccessAPI(gomeUrl, GoodsSpecListApi, http.MethodPost, utils.Struct2FlatMap(a.MakeRequestParam(reqByte)))
if err != nil {
return nil, err
}
data := &QueryGoodsSpecSizeRes{}
if err := utils.Map2StructByJson(gomeResult, data, false); err != nil {
return nil, err
}
jsonMarshal, err := json.Marshal(gomeResult)
if err != nil {
return nil, err
}
if err := json.Unmarshal(jsonMarshal, data); err != nil {
return nil, err
}
if data.Code != 200 {
return nil, errors.New(result.Message)
}
return data, err
}
// 查询商品规格详情
func (a *API) QueryGoodsDetails(specCode string) (result *QueryGoodsSpecDetailRes, err error) {
byteParam, err := json.Marshal(map[string]string{"specCode": specCode})
if err != nil {
return nil, err
}
gomeResult, err := a.AccessAPI(gomeUrl, GoodsSpecDetailApi, http.MethodPost, utils.Struct2FlatMap(a.MakeRequestParam(byteParam)))
if err != nil {
return nil, err
}
detail := &QueryGoodsSpecDetailRes{}
if err := utils.Map2StructByJson(gomeResult, detail, false); err != nil {
return nil, err
}
if result.Code != 200 {
return nil, errors.New(result.Message)
}
return detail, err
}
// 新增商品规格
func (a *API) CreateGoodsSpceList(param *CreateSpecDetailParam) (result *SystemParameterRes, err error) {
paramByte, err := json.Marshal(param)
if err != nil {
return nil, err
}
gomeResult, err := a.AccessAPI(gomeUrl, GoodsSpecCreateApi, http.MethodPost, utils.Struct2FlatMap(a.MakeRequestParam(paramByte)))
resultData := &SystemParameterRes{}
if err := utils.Map2StructByJson(gomeResult, resultData, true); err != nil {
return nil, err
}
if result.Code != 200 {
return nil, errors.New(result.Message)
}
return resultData, nil
}
// 修改商品规格
func (a *API) UpdateGoodsSize(param *UpdateGoodsSizeReq) (*SystemParameterRes, error) {
paramByte, err := json.Marshal(param)
if err != nil {
return nil, err
}
gomeResult, err := a.AccessAPI(gomeUrl, GoodsSpecUpdateApi, http.MethodPost, utils.Struct2FlatMap(a.MakeRequestParam(paramByte)))
resultData := &SystemParameterRes{}
if err := utils.Map2StructByJson(gomeResult, resultData, true); err != nil {
return nil, err
}
if resultData.Code != 200 {
return nil, errors.New(resultData.Message)
}
return resultData, nil
}
// 删除商品规格
func (a *API) DeleteGoodsSize(specCode string) (*SystemParameterRes, error) {
byteParam, err := json.Marshal(map[string]string{"specCode": specCode})
if err != nil {
return nil, err
}
gomeResult, err := a.AccessAPI(gomeUrl, GoodsSpecDeleteApi, http.MethodPost, utils.Struct2FlatMap(a.MakeRequestParam([]byte(byteParam))))
if err != nil {
return nil, err
}
resultData := &SystemParameterRes{}
if err := utils.Map2StructByJson(gomeResult, resultData, true); err != nil {
return nil, err
}
if resultData.Code != 200 {
return nil, errors.New(resultData.Message)
}
return resultData, nil
}
// 获取不同商品的类型
func (a *API) GetGoodsTypeList(cat3Code string) (*QueryGoodsTypeListRes, error) {
byteParam, err := json.Marshal(map[string]string{"cat3Code": cat3Code})
if err != nil {
return nil, err
}
gomeResult, err := a.AccessAPI(gomeUrl, GoodsSpecTypeApi, http.MethodPost, utils.Struct2FlatMap(a.MakeRequestParam([]byte(byteParam))))
if err != nil {
return nil, err
}
resultData := &QueryGoodsTypeListRes{}
if err := utils.Map2StructByJson(gomeResult, resultData, true); err != nil {
return nil, err
}
if resultData.Code != 200 {
return nil, errors.New(resultData.Message)
}
return resultData, nil
}