- mtwmapi
This commit is contained in:
135
platformapi/mtwmapi/poi.go
Normal file
135
platformapi/mtwmapi/poi.go
Normal file
@@ -0,0 +1,135 @@
|
||||
package mtwmapi
|
||||
|
||||
import (
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"strings"
|
||||
|
||||
"git.rosy.net.cn/baseapi/platformapi"
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
)
|
||||
|
||||
type PoiCategoryInfo struct {
|
||||
ID int `json:"id"`
|
||||
Name string `json:"name"`
|
||||
}
|
||||
|
||||
func (a *API) PoiSave(poiCode string, poiParams map[string]interface{}) (err error) {
|
||||
_, err = a.AccessAPI("poi/save", false, utils.MergeMaps(utils.Params2Map(KeyAppPoiCode, poiCode), poiParams))
|
||||
return err
|
||||
}
|
||||
|
||||
func (a *API) PoiGetIDs() (ids []string, err error) {
|
||||
result, err := a.AccessAPI("poi/getids", true, nil)
|
||||
if err == nil {
|
||||
idsTmp := result.([]interface{})
|
||||
ids = make([]string, len(idsTmp))
|
||||
for k, v := range idsTmp {
|
||||
ids[k] = v.(string)
|
||||
}
|
||||
return ids, nil
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
|
||||
func (a *API) PoiMGet(poiCodes []string) (pois []map[string]interface{}, err error) {
|
||||
result, err := a.AccessAPI("poi/mget", true, map[string]interface{}{
|
||||
KeyAppPoiCodes: strings.Join(poiCodes, ","),
|
||||
})
|
||||
if err == nil {
|
||||
return utils.Slice2MapSlice(result.([]interface{})), nil
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
|
||||
func (a *API) PoiGet(poiCode string) (poi map[string]interface{}, err error) {
|
||||
result, err := a.PoiMGet([]string{poiCode})
|
||||
if err == nil {
|
||||
return result[0], nil
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
|
||||
func (a *API) PoiClose(poiCode string) (err error) {
|
||||
_, err = a.AccessAPI("poi/close", false, map[string]interface{}{
|
||||
KeyAppPoiCode: poiCode,
|
||||
})
|
||||
return err
|
||||
}
|
||||
|
||||
func (a *API) PoiOnline(poiCode string) (err error) {
|
||||
_, err = a.AccessAPI("poi/online", false, map[string]interface{}{
|
||||
KeyAppPoiCode: poiCode,
|
||||
})
|
||||
return err
|
||||
}
|
||||
|
||||
func (a *API) PoiUpdatePromoteInfo(poiCode, promotionInfo string) (err error) {
|
||||
_, err = a.AccessAPI("poi/updatepromoteinfo", false, map[string]interface{}{
|
||||
KeyAppPoiCode: poiCode,
|
||||
"promotion_info": promotionInfo,
|
||||
})
|
||||
return err
|
||||
}
|
||||
|
||||
func (a *API) PoiTagList(poiCode string) (catList []*PoiCategoryInfo, err error) {
|
||||
result, err := a.AccessAPI("poiTag/list", false, map[string]interface{}{
|
||||
KeyAppPoiCode: poiCode,
|
||||
})
|
||||
if err == nil {
|
||||
catListTmp := result.([]interface{})
|
||||
catList = make([]*PoiCategoryInfo, len(catListTmp))
|
||||
for k, v := range catListTmp {
|
||||
cat := v.(map[string]interface{})
|
||||
catList[k] = &PoiCategoryInfo{
|
||||
ID: int(utils.MustInterface2Int64(cat["id"])),
|
||||
Name: utils.Interface2String(cat["name"]),
|
||||
}
|
||||
}
|
||||
return catList, nil
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
|
||||
func (a *API) PoiShipTimeUpdate(poiCode string, beginTime1, endTime1, beginTime2, endTime2 string) (err error) {
|
||||
shippingTime := beginTime1 + "-" + endTime1
|
||||
if beginTime2 != "" {
|
||||
shippingTime += "," + beginTime2 + "-" + endTime2
|
||||
}
|
||||
_, err = a.AccessAPI("poi/updatepromoteinfo", false, map[string]interface{}{
|
||||
KeyAppPoiCode: poiCode,
|
||||
"shipping_time": shippingTime,
|
||||
})
|
||||
return err
|
||||
}
|
||||
|
||||
// 美团要求必须是jpg|jpeg图片格式,且imgName必须以jpg或jpeg结尾
|
||||
func (a *API) ImageUpload(poiCode, imgName string, imgData []byte) (imgID string, err error) {
|
||||
result, err := a.AccessAPI("image/upload", false, map[string]interface{}{
|
||||
KeyAppPoiCode: poiCode,
|
||||
KeyImgName: imgName,
|
||||
KeyImgData: imgData,
|
||||
})
|
||||
if err == nil {
|
||||
return result.(string), nil
|
||||
}
|
||||
return "", err
|
||||
}
|
||||
|
||||
func (a *API) ImageUploadByURL(poiCode, imgName, imgURL string) (imgID string, err error) {
|
||||
response, err := http.Get(imgURL)
|
||||
if err == nil {
|
||||
defer func() {
|
||||
response.Body.Close()
|
||||
}()
|
||||
if response.StatusCode == http.StatusOK {
|
||||
bodyData, err2 := ioutil.ReadAll(response.Body)
|
||||
if err = err2; err == nil {
|
||||
return a.ImageUpload(poiCode, imgName, bodyData)
|
||||
}
|
||||
} else {
|
||||
err = platformapi.ErrHTTPCodeIsNot200
|
||||
}
|
||||
}
|
||||
return "", err
|
||||
}
|
||||
Reference in New Issue
Block a user