添加蜂鸟配送

This commit is contained in:
邹宗楠
2022-03-25 09:33:46 +08:00
parent c71429a3fd
commit c112e5e282
21 changed files with 2117 additions and 500 deletions

View File

@@ -1,6 +1,7 @@
package fnpsapi
import (
"encoding/json"
"fmt"
"strings"
@@ -12,24 +13,51 @@ const (
StoreExist = "该门店已存在"
)
type CreateStoreParam struct {
ChainStoreCode string `json:"chain_store_code,omitempty"`
ChainStoreName string `json:"chain_store_name,omitempty"`
ChainStoreType int `json:"chain_store_type,omitempty"`
MerchantCode string `json:"merchant_code,omitempty"`
ContactPhone string `json:"contact_phone,omitempty"`
Address string `json:"address,omitempty"`
PositionSource int `json:"position_source,omitempty"`
Longitude string `json:"longitude,omitempty"`
Latitude string `json:"latitude,omitempty"`
ServiceCode string `json:"service_code,omitempty"`
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) CreateStore(createStoreParam *CreateStoreParam) (err error) {
createStoreParam.ServiceCode = "1"
params := utils.Struct2FlatMap(createStoreParam)
_, err = a.AccessAPI("v2/chain_store", URL, params, true)
return err
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 {
@@ -46,15 +74,41 @@ type GetStoreResult struct {
}
func (a *API) GetStore(storeID string) (getStoreResult *GetStoreResult, err error) {
result, err := a.AccessAPI("v2/chain_store/query", URL, map[string]interface{}{
"chain_store_code": []string{storeID},
}, true)
if err == nil {
if data, ok := result["data"].([]interface{}); ok {
utils.Map2StructByJson(data[0], &getStoreResult, false)
} else {
err = fmt.Errorf(result["msg"].(string))
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
}
@@ -76,9 +130,3 @@ func IsErrShopExist(err error) bool {
}
return false
}
func (a *API) UpdateStore(createStoreParam *CreateStoreParam) (err error) {
params := utils.Struct2FlatMap(createStoreParam)
_, err = a.AccessAPI("v2/chain_store/update", URL, params, true)
return err
}