mtwmapi.OrderModityTips and GetDistributeOrderDetail

This commit is contained in:
gazebo
2019-12-26 15:08:20 +08:00
parent 6002945fda
commit 7ce628a4ec
2 changed files with 34 additions and 71 deletions

View File

@@ -1,20 +1,9 @@
package mtwmapi
import (
"encoding/json"
"fmt"
"net/http"
"strings"
"git.rosy.net.cn/baseapi"
"git.rosy.net.cn/baseapi/platformapi"
"git.rosy.net.cn/baseapi/utils"
)
const (
orderURL = "https://shangoue.meituan.com/v2"
)
type DistributeOrderDetail struct {
WmOrderID int `json:"wm_order_id"`
WmPoiID int `json:"wm_poi_id"`
@@ -49,74 +38,32 @@ type DistributeOrderDetail struct {
DelayPushSecond int `json:"delay_push_second"`
}
func (a *API) AccessOrderPage(subURL string, params map[string]interface{}, isPost bool) (retVal map[string]interface{}, err error) {
if a.GetCookieCount() == 0 {
return nil, fmt.Errorf("需要设置User Cookie才能使用此方法")
}
err = platformapi.AccessPlatformAPIWithRetry(a.client,
func() *http.Request {
var request *http.Request
if !isPost {
request, _ = http.NewRequest(http.MethodGet, utils.GenerateGetURL(orderURL, subURL, params), nil)
} else {
fullURL := utils.GenerateGetURL(orderURL, subURL, nil)
request, _ = http.NewRequest(http.MethodPost, fullURL, strings.NewReader(utils.Map2URLValues(params).Encode()))
}
request.Header.Set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
request.Header.Set("User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.120 Safari/537.36")
request.Header.Set("Pragma", "no-cache")
a.FillRequestCookies(request)
return request
},
a.config,
func(response *http.Response, bodyStr string, jsonResult1 map[string]interface{}) (errLevel string, err error) {
if jsonResult1 == nil {
return platformapi.ErrLevelRecoverableErr, fmt.Errorf("mapData is nil")
}
retVal = jsonResult1
code := int(utils.MustInterface2Int64(jsonResult1["code"]))
if code == ResponseCodeSuccess {
retVal, _ = jsonResult1["data"].(map[string]interface{})
return platformapi.ErrLevelSuccess, nil
}
newErr := utils.NewErrorIntCode(jsonResult1["msg"].(string), code)
baseapi.SugarLogger.Debugf("mt AccessStorePage failed, jsonResult1:%s", utils.Format4Output(jsonResult1, true))
return platformapi.ErrLevelCodeIsNotOK, newErr
})
return retVal, err
}
//美团骑手修改小费,单位为元,最多小数点后一位
//order/receive/processed/w/distribute/tipAmount/v2?ignoreSetRouterProxy=true
func (a *API) OrderModityTips(orderID, poiID string, tipAmount float64) (err error) {
func (a *API) OrderModityTips(orderID, poiCode string, tipAmount float64) (err error) {
params := map[string]interface{}{
"wmOrderViewId": orderID,
"wmPoiId": poiID,
"wmPoiId": poiCode,
"tipAmount": tipAmount,
}
_, err = a.AccessOrderPage("order/receive/processed/w/distribute/tipAmount/v2", params, true)
_, err = a.AccessUserPage2("order/receive/processed/w/distribute/tipAmount/v2", params, true)
return err
}
//获取美团订单小费
//https://shangoue.meituan.com/v2/order/receive/processed/r/distribute/list/v2
func (a *API) GetDistributeOrderDetail(orderID, poiID string) (distributeOrderDetail *DistributeOrderDetail, err error) {
func (a *API) GetDistributeOrderDetail(orderID, poiCode string) (distributeOrderDetail *DistributeOrderDetail, err error) {
params1 := map[string]interface{}{
"wmOrderViewId": orderID,
"wmPoiId": poiID,
}
result1, err := json.MarshalIndent(params1, "", "")
if err != nil {
return distributeOrderDetail, err
"wmPoiId": poiCode,
}
params := map[string]interface{}{
"orderInfos": []string{string(result1)},
"orderInfos": []string{string(utils.MustMarshal(params1))},
}
result, err2 := a.AccessOrderPage("order/receive/processed/r/distribute/list/v2", params, false)
result, err2 := a.AccessUserPage2("order/receive/processed/r/distribute/list/v2", params, false)
if err2 != nil {
return distributeOrderDetail, err
}
utils.Map2StructByJson(result[orderID], &distributeOrderDetail, true)
err = utils.Map2StructByJson(result[orderID], &distributeOrderDetail, true)
return distributeOrderDetail, err
}