Files
baseapi/platformapi/fnpsapi_v3/store.go
2022-03-18 14:08:15 +08:00

106 lines
2.5 KiB
Go

package fnpsapi
import (
"encoding/json"
"fmt"
"git.rosy.net.cn/baseapi/utils"
"strings"
)
const (
StoreNotExist = "门店信息不存在"
StoreExist = "该门店已存在"
)
// 获取access_token
func (a *API) GetAccessToken() (tokenInfo *TokenInfo, err error) {
a.grantType = "authorization_code"
a.signature = a.signParam2()
result, err := a.AccessAPI(TokenURL, "", RequestPost, nil)
if err != nil {
return nil, err
}
if err := utils.Map2StructByJson(result["data"], &tokenInfo, false); err != nil {
return nil, err
}
return tokenInfo, err
}
// 创建门店.
func (a *API) CreateStore(createStoreParam *CreateStoreBaseInfo) (err error) {
requestHead := a.MakeFnRequestHead()
params := utils.Struct2FlatMap(createStoreParam)
requestHead["business_data"] = params
_, err = a.AccessAPI(ApiURL, "chainstoreCreate", RequestPost, requestHead)
return err
}
// 更新门店
func (a *API) UpdateStore(updateStore *UpdateStoreParam) (err error) {
requestHead := a.MakeFnRequestHead()
params := utils.Struct2FlatMap(updateStore)
requestHead["business_data"] = params
_, err = a.AccessAPI(ApiURL, "chainstoreUpdate", RequestPost, requestHead)
return
}
// 获取门店(单个)
func (a *API) GetStore(storeID string) (getStoreResult *GetOneStoreRespData, err error) {
params := GetOneStoreParam{
BaseInfo: BaseInfo{
AccessToken: a.accessToken,
Signature: a.signature,
MerchantID: a.merchantId,
Version: a.version,
AppID: a.appID,
Timestamp: a.timestamp,
},
BusinessData: "",
}
// 序列化请求参数
data, err := json.Marshal(GetOneStore{MerchantID: a.merchantId, OutShopCode: storeID})
if err != nil {
return nil, err
}
params.BusinessData = string(data)
paramsMap := utils.Struct2FlatMap(params)
result, err := a.AccessAPI(ApiURL, "chainstoreQuery", RequestGet, paramsMap)
if err != nil {
return nil, err
}
if result["code"] != "200" {
return nil, fmt.Errorf("%s", result["msg"])
}
if data, ok := result["business_data"].([]interface{}); ok {
utils.Map2StructByJson(data[0], &getStoreResult, false)
} else {
err = fmt.Errorf(result["msg"].(string))
}
return getStoreResult, err
}
func IsErrShopNotExist(err error) bool {
if err != nil {
if strings.Contains(err.Error(), StoreNotExist) {
return true
}
}
return false
}
func IsErrShopExist(err error) bool {
if err != nil {
if strings.Contains(err.Error(), StoreExist) {
return true
}
}
return false
}
//todo商户门店接口,图片上传接口