package gome_live_show import ( "encoding/json" "errors" "gitrosy.jxc4.com/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 }