260 lines
7.3 KiB
Go
260 lines
7.3 KiB
Go
package gome_live_show
|
||
|
||
import (
|
||
"encoding/json"
|
||
"errors"
|
||
"git.rosy.net.cn/baseapi/utils"
|
||
"net/http"
|
||
)
|
||
|
||
// 商户商品列表查询
|
||
func (a *API) GetMerchantStoreGoodsList(req *QueryStoreGoodsListReq) (*QueryStoreGoodsListRes, error) {
|
||
if req.PageNumber == 0 {
|
||
req.PageNumber = 1
|
||
}
|
||
if req.PageSize == 0 {
|
||
req.PageSize = 50
|
||
}
|
||
byteParam, err := json.Marshal(req)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
gomeResult, err := a.AccessAPI(gomeUrl, GetMerchantGoodsList, http.MethodPost, utils.Struct2FlatMap(a.MakeRequestParam(byteParam)))
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
result := &QueryStoreGoodsListRes{}
|
||
if err := utils.Map2StructByJson(gomeResult, result, false); err != nil {
|
||
return nil, err
|
||
}
|
||
if result.Code != 200 {
|
||
return nil, errors.New(result.Message)
|
||
}
|
||
return result, nil
|
||
}
|
||
|
||
// 商品详情查询,包含商品基本信息名称、图片、品类,规格
|
||
func (a *API) QueryMerchantStoreGoodsDetail(spuCode string) (*QueryStoreGoodsDetailsRes, error) {
|
||
byteSpuCode, err := json.Marshal(map[string]string{"spuCode": spuCode})
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
gomeResult, err := a.AccessAPI(gomeUrl, GetMerchantGoodsDetailList, http.MethodPost, utils.Struct2FlatMap(a.MakeRequestParam(byteSpuCode)))
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
result := &QueryStoreGoodsDetailsRes{}
|
||
if err := utils.Map2StructByJson(gomeResult, result, false); err != nil {
|
||
return nil, err
|
||
}
|
||
if result.Code != 200 {
|
||
return nil, errors.New(result.Message)
|
||
}
|
||
return result, nil
|
||
}
|
||
|
||
// 商户创建新的商品
|
||
func (a *API) CreateMerchantGoodsOnStore(req *CreateGoodsListToStore) (*SystemParameterRes, error) {
|
||
byteReq, err := json.Marshal(req)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
gomeResult, err := a.AccessAPI(gomeUrl, CreateMerchantGoodsToStore, http.MethodPost, utils.Struct2FlatMap(a.MakeRequestParam(byteReq)))
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
result := &SystemParameterRes{}
|
||
if err := utils.Map2StructByJson(gomeResult, result, false); err != nil {
|
||
return nil, err
|
||
}
|
||
if result.Code != 200 {
|
||
return nil, errors.New(result.Message)
|
||
}
|
||
return result, nil
|
||
}
|
||
|
||
// 修改商户商品,商品一旦创建,不可修改商品的品类和类型,只能修改商品的基础信息,如果规格信息有修改,需要同时入参specProperty 和 skuSaleList
|
||
func (a *API) UpdateMerchantGoodsOnStore(req *CreateGoodsListToStore) (*SystemParameterRes, error) {
|
||
byteReq, err := json.Marshal(req)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
gomeResult, err := a.AccessAPI(gomeUrl, UpdateMerchantGoodsToStore, http.MethodPost, utils.Struct2FlatMap(a.MakeRequestParam(byteReq)))
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
result := &SystemParameterRes{}
|
||
if err := utils.Map2StructByJson(gomeResult, result, false); err != nil {
|
||
return nil, err
|
||
}
|
||
if result.Code != 200 {
|
||
return nil, errors.New(result.Message)
|
||
}
|
||
return result, nil
|
||
}
|
||
|
||
// 不在使用的商户商品可删除
|
||
func (a *API) DeleteGoodsOnStore(spuCode string) (*SystemParameterRes, error) {
|
||
param, err := json.Marshal(map[string]string{"spuCode": spuCode})
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
gomeResult, err := a.AccessAPI(gomeUrl, DeleteMerchantGoodsToStore, http.MethodPost, utils.Struct2FlatMap(a.MakeRequestParam(param)))
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
result := &SystemParameterRes{}
|
||
if err := utils.Map2StructByJson(gomeResult, result, false); err != nil {
|
||
return nil, err
|
||
}
|
||
if result.Code != 200 {
|
||
return nil, errors.New(result.Message)
|
||
}
|
||
return result, nil
|
||
}
|
||
|
||
// 根据店铺编码查询店铺商品列表。
|
||
func (a *API) QueryGoodsListById(req *QueryGoodsListForStoreReq) (*QueryGoodsListForStoreRes, error) {
|
||
byteReq, err := json.Marshal(req)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
gomeResult, err := a.AccessAPI(gomeUrl, QueryGoodsListByStoreId, http.MethodPost, utils.Struct2FlatMap(a.MakeRequestParam(byteReq)))
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
result := &QueryGoodsListForStoreRes{}
|
||
if err := utils.Map2StructByJson(gomeResult, result, false); err != nil {
|
||
return nil, err
|
||
}
|
||
if result.Code != 200 {
|
||
return nil, errors.New(result.Message)
|
||
}
|
||
return result, nil
|
||
}
|
||
|
||
// 查询单商品接口
|
||
func (a *API) QueryOneGoodsForStore(storeCode, skuCode string) (*QueryStoreOneGoodsRes, error) {
|
||
if storeCode == "" || skuCode == "" {
|
||
return nil, errors.New("参数不能为空")
|
||
}
|
||
|
||
byteReq, err := json.Marshal(map[string]string{"storeCode": storeCode, "skuCode": skuCode})
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
gomeResult, err := a.AccessAPI(gomeUrl, QueryOneGoodsByStoreId, http.MethodPost, utils.Struct2FlatMap(a.MakeRequestParam(byteReq)))
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
result := &QueryStoreOneGoodsRes{}
|
||
if err := utils.Map2StructByJson(gomeResult, result, false); err != nil {
|
||
return nil, err
|
||
}
|
||
if result.Code != 200 {
|
||
return nil, errors.New(result.Message)
|
||
}
|
||
return result, nil
|
||
}
|
||
|
||
// 商品上下架操作 功能描述: 商品上下架,支持单商品或多商品;如果商品在审核中或驳回情况下,
|
||
//将禁止商户的上架操作,最多支持10 个sku,此接口不会立刻响应成功或失败,需要调用查询接口确定
|
||
func (a *API) OnOffLineGoodsOnStore(req *ShelfGoodsForStoreReq) (*SystemParameterRes, error) {
|
||
byteReq, err := json.Marshal(req)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
gomeResult, err := a.AccessAPI(gomeUrl, GoodsOnOffLineByStore, http.MethodPost, utils.Struct2FlatMap(a.MakeRequestParam(byteReq)))
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
result := &SystemParameterRes{}
|
||
if err := utils.Map2StructByJson(gomeResult, result, false); err != nil {
|
||
return nil, err
|
||
}
|
||
if result.Code != 200 {
|
||
return nil, errors.New(result.Message)
|
||
}
|
||
return result, nil
|
||
}
|
||
|
||
// 单商品维护售价
|
||
func (a *API) UpdateOnGoodsPriceForStore(req *StoreGoodsPriceUpdateReq) (*SystemParameterRes, error) {
|
||
byteReq, err := json.Marshal(req)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
gomeResult, err := a.AccessAPI(gomeUrl, UpdatePriceToOneGoodsByStore, http.MethodPost, utils.Struct2FlatMap(a.MakeRequestParam(byteReq)))
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
result := &SystemParameterRes{}
|
||
if err := utils.Map2StructByJson(gomeResult, result, false); err != nil {
|
||
return nil, err
|
||
}
|
||
if result.Code != 200 {
|
||
return nil, errors.New(result.Message)
|
||
}
|
||
return result, nil
|
||
}
|
||
|
||
// 商品库存更新接口
|
||
func (a *API) UpdateStockForStore(req *StoreGoodsStockUpdateReq) (*SystemParameterRes, error) {
|
||
byteReq, err := json.Marshal(req)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
gomeResult, err := a.AccessAPI(gomeUrl, UpdateGoodsStockForStore, http.MethodPost, utils.Struct2FlatMap(a.MakeRequestParam(byteReq)))
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
result := &SystemParameterRes{}
|
||
if err := utils.Map2StructByJson(gomeResult, result, false); err != nil {
|
||
return nil, err
|
||
}
|
||
if result.Code != 200 {
|
||
return nil, errors.New(result.Message)
|
||
}
|
||
return result, nil
|
||
}
|
||
|
||
// 新增店铺商品
|
||
func (a *API) CreateGoodsForStore(req *CreateGoodsForStoreReq) (*SystemParameterRes, error) {
|
||
byteReq, err := json.Marshal(req)
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
gomeResult, err := a.AccessAPI(gomeUrl, AddGoodsForStore, http.MethodPost, utils.Struct2FlatMap(a.MakeRequestParam(byteReq)))
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
|
||
result := &SystemParameterRes{}
|
||
if err := utils.Map2StructByJson(gomeResult, result, false); err != nil {
|
||
return nil, err
|
||
}
|
||
if result.Code != 200 {
|
||
return nil, errors.New(result.Message)
|
||
}
|
||
return result, nil
|
||
}
|