diff --git a/platformapi/mtwmapi/order.go b/platformapi/mtwmapi/order.go index c3498b0e..03066c16 100644 --- a/platformapi/mtwmapi/order.go +++ b/platformapi/mtwmapi/order.go @@ -308,6 +308,23 @@ type GetOrderIdByDaySeqResult struct { OrderIDs []int64 `json:"order_ids"` } +type UserRealPhoneNumberInfo struct { + OrderID int64 `json:"order_id"` + AppPoiCode string `json:"app_poi_code"` + WmOrderIDView string `json:"wm_order_id_view"` + DaySeq int `json:"day_seq"` + RealPhoneNumber string `json:"real_phone_number"` // 订单收货人的真实手机号码 + RealOrderPhoneNumber string `json:"real_order_phone_number"` // 鲜花绿植类订单预订人的真实手机号码,如无则返回空。 +} + +type RiderRealPhoneNumberInfo struct { + OrderID int64 `json:"order_id"` + AppPoiCode string `json:"app_poi_code"` + WmOrderIDView string `json:"wm_order_id_view"` + RiderName string `json:"rider_name"` + RiderRealPhoneNumber string `json:"rider_real_phone_number"` // 骑手真实手机号 +} + func (a *API) OrderReceived(orderID int64) (err error) { _, err = a.AccessAPI("order/poi_received", true, map[string]interface{}{ KeyOrderID: orderID, @@ -462,8 +479,10 @@ func (a *API) OrderLogisticsStatus(orderID int64) (status map[string]interface{} return nil, err } +// 拉取用户真实手机号(必接) +// https://developer.waimai.meituan.com/home/docDetail/222 // limit最大为MaxBatchPullPhoneNumberLimit = 1000 -func (a *API) OrderBatchPullPhoneNumber(poiCode string, offset, limit int) (realNumberList []map[string]interface{}, err error) { +func (a *API) OrderBatchPullPhoneNumber(poiCode string, offset, limit int) (realNumberList []*UserRealPhoneNumberInfo, err error) { params := map[string]interface{}{ "offset": offset, "limit": limit, @@ -473,9 +492,27 @@ func (a *API) OrderBatchPullPhoneNumber(poiCode string, offset, limit int) (real } result, err := a.AccessAPI("order/batchPullPhoneNumber", false, params) if err == nil { - return utils.Slice2MapSlice(result.([]interface{})), nil + err = utils.Map2StructByJson(result, &realNumberList, false) } - return nil, err + return realNumberList, err +} + +// 拉取骑手真实手机号(必接),美团2019-09-17才开始灰度上线 +// https://developer.waimai.meituan.com/home/docDetail/388 +// limit最大为MaxBatchPullPhoneNumberLimit = 1000 +func (a *API) OrderGetRiderInfoPhoneNumber(poiCode string, offset, limit int) (realNumberList []*RiderRealPhoneNumberInfo, err error) { + params := map[string]interface{}{ + "offset": offset, + "limit": limit, + } + if poiCode != "" { + params[KeyAppPoiCode] = poiCode + } + result, err := a.AccessAPI("order/getRiderInfoPhoneNumber", false, params) + if err == nil { + err = utils.Map2StructByJson(result, &realNumberList, false) + } + return realNumberList, err } // 专快混配送转为商家自配送 diff --git a/platformapi/mtwmapi/order_test.go b/platformapi/mtwmapi/order_test.go index 838ac1d5..444d3130 100644 --- a/platformapi/mtwmapi/order_test.go +++ b/platformapi/mtwmapi/order_test.go @@ -80,14 +80,19 @@ func TestOrderLogisticsStatus(t *testing.T) { } func TestOrderBatchPullPhoneNumber(t *testing.T) { - result, err := api.OrderBatchPullPhoneNumber(testPoiCode, 0, 10) + result, err := api.OrderBatchPullPhoneNumber(testPoiCode, 0, MaxBatchPullPhoneNumberLimit) + t.Log(utils.Format4Output(result, false)) if err != nil { t.Fatal(err) } - if len(result) == 0 { - t.Fatal("result should have value") +} + +func TestOrderGetRiderInfoPhoneNumber(t *testing.T) { + result, err := api.OrderGetRiderInfoPhoneNumber(testPoiCode, 0, MaxBatchPullPhoneNumberLimit) + t.Log(utils.Format4Output(result, false)) + if err != nil { + t.Fatal(err) } - // t.Log(utils.Format4Output(result, false)) } func TestGetOrderRefundDetail(t *testing.T) {