diff --git a/platformapi/mtwmapi/order.go b/platformapi/mtwmapi/order.go index 8618390f..2d23edf3 100644 --- a/platformapi/mtwmapi/order.go +++ b/platformapi/mtwmapi/order.go @@ -4,7 +4,6 @@ import ( "encoding/json" "errors" "git.rosy.net.cn/baseapi/utils" - "strings" "time" ) @@ -401,6 +400,16 @@ type Errors struct { Msg string `json:"msg"` } +// 专快混配送转为商家自配送 +// 预定单不能调用此接口 +// https://developer.waimai.meituan.com/home/myquestionDetail/7382 +func (a *API) OrderLogisticsChange2Self(orderID int64) (err error) { + _, err = a.AccessAPI("order/logistics/change/poi_self", false, map[string]interface{}{ + KeyOrderID: orderID, + }) + return err +} + func (a *API) OrderDelivering(orderID int64) (err error) { retval, err := a.AccessAPI("order/delivering", true, map[string]interface{}{ KeyOrderID: orderID, @@ -589,19 +598,6 @@ func (a *API) OrderGetRiderInfoPhoneNumber(poiCode string, offset, limit int) (r return realNumberList, err } -// 专快混配送转为商家自配送 -// 预定单不能调用此接口 -// https://developer.waimai.meituan.com/home/myquestionDetail/7382 -func (a *API) OrderLogisticsChange2Self(orderID int64) (err error) { - _, err = a.AccessAPI("order/logistics/change/poi_self", false, map[string]interface{}{ - KeyOrderID: orderID, - }) - if strings.Contains(err.Error(), "1047") { - return a.OrderDelivering(orderID) - } - return err -} - // refundOrderDetailList不能定义为[]*RefundOrderDetail,否则会有解析错误,原因不明 func (a *API) GetOrderRefundDetail(orderID int64, refundType int) (refundOrderDetailList []*RefundOrderDetail, err error) { params := map[string]interface{}{ @@ -704,24 +700,24 @@ func (a *API) OrderStatusAndPsInfo(params map[string]interface{}) (err error) { // 获取取消跑腿理由刘表 // https://open-shangou.meituan.com/home/docDetail/482 -func (a *API) GetCancelDeliveryReason(orderId int64, appPoiCode string) ([]*ReasonList, error) { +func (a *API) GetCancelDeliveryReason(orderId int64, appPoiCode string) (string, error) { data, err := a.AccessAPI("order/getCancelDeliveryReason", false, map[string]interface{}{"order_id": orderId, "app_poi_code": appPoiCode}) if err != nil { - return nil, err + return "", err } - result := &CancelDeliveryReasonList{} - if err := json.Unmarshal([]byte(utils.Interface2String(data)), result); err != nil { - return nil, err + str, _ := json.Marshal(data) + result := &DeliveryData{} + if err := json.Unmarshal(str, result); err != nil { + return "", err } - return result.Data.ReasonList, nil + + list, _ := json.Marshal(&result.ReasonList) + + return string(list), nil } -type CancelDeliveryReasonList struct { - Data *Data `json:"data"` -} - -type Data struct { +type DeliveryData struct { Code int `json:"code"` Title string `json:"title"` ReasonList []*ReasonList `json:"reasonList"` @@ -737,8 +733,14 @@ type ReasonList struct { } // 取消跑腿配送 -func (a *API) CancelLogisticsByWmOrderId(param *CancelOrderParam) error { - data, err := a.AccessAPI("order/getCancelDeliveryReason", false, utils.Struct2FlatMap(param)) +func (a *API) CancelLogisticsByWmOrderId(reasonCode, detailContent, appPoiCode, orderId string) error { + param := &CancelOrderParam{ + ReasonCode: reasonCode, + DetailContent: detailContent, + AppPoiCode: appPoiCode, + OrderId: orderId, + } + data, err := a.AccessAPI("order/cancelLogisticsByWmOrderId", false, utils.Struct2FlatMap(param)) if err != nil { return err } diff --git a/platformapi/mtwmapi/order_page_test.go b/platformapi/mtwmapi/order_page_test.go index 791e1b6a..398096ac 100644 --- a/platformapi/mtwmapi/order_page_test.go +++ b/platformapi/mtwmapi/order_page_test.go @@ -23,7 +23,7 @@ func TestGetDistributeOrderDetail(t *testing.T) { } func TestCancelReason(t *testing.T) { - result, err := api.GetCancelDeliveryReason(140382470610780245, "14038247") + result, err := api.GetCancelDeliveryReason(148815412592716910, "14881541") if err != nil { t.Fatal(err) } diff --git a/platformapi/mtwmapi/order_test.go b/platformapi/mtwmapi/order_test.go index 06305bf0..63c5ac6c 100644 --- a/platformapi/mtwmapi/order_test.go +++ b/platformapi/mtwmapi/order_test.go @@ -173,8 +173,13 @@ func TestAa2(t *testing.T) { } func TestDeleving(t *testing.T) { - err := api.OrderLogisticsChange2Self(148815412830472574) + err := api.OrderLogisticsChange2Self(148815413321281654) fmt.Println(strings.Contains(err.Error(), "1047")) t.Fatal(err) } + +func TestOrderDelivering(t *testing.T) { + err := api.OrderDelivering(148815413321281654) + t.Fatal(err) +}