132 lines
3.4 KiB
Go
132 lines
3.4 KiB
Go
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
|
||
}
|