Files
baseapi/platformapi/fnpsapi/store.go
2022-03-25 11:48:20 +08:00

132 lines
3.4 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package fnpsapi
import (
"encoding/json"
"fmt"
"strings"
"git.rosy.net.cn/baseapi/utils"
)
const (
StoreNotExist = "门店信息不存在"
StoreExist = "该门店已存在"
)
const (
// 创建状态
ShopCreateStatusAuditRejected = 10 // 上架审核中
ShopCreateStatusAuditPassed = 20 // 正常(已上架)
ShopCreateStatusAuditCreated = 30 // 上架审核失败
ShopCreateStatusAuditOnline = 40 // 已冻结
ShopCreateStatusAuditUpdateRejected = 50 // 已下架
// 修改状态
ShopUpdateStatusAuditRejected = 0 // 无修改
ShopUpdateStatusAuditPassed = 10 // 资料修改审核中
ShopUpdateStatusAuditCreated = 20 // 审核通过
ShopUpdateStatusAuditOnline = 30 // 审核驳回
)
func (a *API) CreateStore(createStoreParam *CreateStoreBaseInfo) (result1 string, err error) {
requestHead := a.MakeFnRequestHead()
storeByte, err := json.Marshal(createStoreParam)
if err != nil {
return "", err
}
requestHead["business_data"] = string(storeByte)
result, err := a.AccessAPI(ApiURL, "chainstoreCreate", RequestPost, requestHead)
if err != nil {
return "", err
}
createShop := struct {
ChainStoreId string `json:"chain_store_id"`
}{}
if err := json.Unmarshal([]byte(utils.Interface2String(result["business_data"])), &createShop); err != nil {
return "", err
}
return createShop.ChainStoreId, nil
}
func (a *API) UpdateStore(updateStore *UpdateStoreParam) (err error) {
requestHead := a.MakeFnRequestHead()
storeByte, err := json.Marshal(updateStore)
if err != nil {
return err
}
requestHead["business_data"] = string(storeByte)
_, err = a.AccessAPI(ApiURL, "chainstoreUpdate", RequestPost, requestHead)
return
}
type GetStoreResult struct {
ChainStoreCode string `json:"chain_store_code"`
ChainStoreName string `json:"chain_store_name"`
Address string `json:"address"`
Latitude string `json:"latitude"`
Longitude string `json:"longitude"`
PositionSource int `json:"position_source"`
City string `json:"city"`
ContactPhone string `json:"contact_phone"`
ServiceCode string `json:"service_code"`
Status int `json:"status"` //1关店2开店
}
func (a *API) GetStore(storeID string) (getStoreResult *GetStoreResult, 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", RequestPost, paramsMap)
if err != nil {
return nil, err
}
if result["code"] != "200" {
return nil, fmt.Errorf("%s", result["msg"])
}
if storeData, ok := result["business_data"]; ok {
if err := json.Unmarshal([]byte(utils.Interface2String(storeData)), &getStoreResult); err != nil {
return nil, err
}
} 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
}