From 382cc6a67f08cf3b98c365050601e08aa4a52a6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Wed, 23 Aug 2023 15:17:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E7=BE=8E=E5=9B=A2=E9=85=8D?= =?UTF-8?q?=E9=80=81=E8=BF=90=E8=B4=B9=E8=8E=B7=E5=8F=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- platformapi/mtwmapi/order.go | 22 ++++++++++++++++++++++ platformapi/mtwmapi/order_test.go | 13 ++++++++++++- 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/platformapi/mtwmapi/order.go b/platformapi/mtwmapi/order.go index 21ad0af2..ad280a59 100644 --- a/platformapi/mtwmapi/order.go +++ b/platformapi/mtwmapi/order.go @@ -553,6 +553,7 @@ func (a *API) OrderLogisticsCancel(orderID int64, reason string) (err error) { return err } +// OrderLogisticsStatus 获取订单状态 func (a *API) OrderLogisticsStatus(orderID int64) (status int64, err error) { result, err := a.AccessAPI("order/logistics/status", true, map[string]interface{}{ KeyOrderID: orderID, @@ -565,6 +566,27 @@ func (a *API) OrderLogisticsStatus(orderID int64) (status int64, err error) { return utils.Interface2Int64WithDefault(data["logistics_status"], 0), err } +// OrderLogisticsFee 获取订单配送费 +func (a *API) OrderLogisticsFee(orderID int64) (payFee float64, err error) { + result, err := a.AccessAPI("order/logistics/status", true, map[string]interface{}{ + KeyOrderID: orderID, + }) + if err != nil { + return 0, err + } + data := result.(map[string]interface{}) + // 美团运单,骑手确认订单之后取消的话就需要扣除全部的运单费用了 + if utils.Interface2Int64WithDefault(data["logistics_status"], 0) == utils.Str2Int64WithDefault(WaybillStatusCanceled, 0) { + if utils.Interface2Int64WithDefault(data["confirm_time"], 0) != 0 { + return utils.TryInterface2Float64(data["pay_amount"]) + } else { + return 0, nil + } + } + + return utils.TryInterface2Float64(data["pay_amount"]) +} + // 拉取用户真实手机号(必接) // https://developer.waimai.meituan.com/home/docDetail/222 // limit最大为MaxBatchPullPhoneNumberLimit = 1000 diff --git a/platformapi/mtwmapi/order_test.go b/platformapi/mtwmapi/order_test.go index d42d5ff4..e062b6e5 100644 --- a/platformapi/mtwmapi/order_test.go +++ b/platformapi/mtwmapi/order_test.go @@ -77,7 +77,18 @@ func TestOrderApplyPartRefund(t *testing.T) { } func TestOrderLogisticsStatus(t *testing.T) { - result, err := api.OrderLogisticsStatus(140382472052682640) + result, err := api.OrderLogisticsStatus(1100687990339131759) + if err != nil { + t.Fatal(err) + } + if result == 0 { + t.Fatal("result should have value") + } + t.Log(utils.Format4Output(result, false)) +} + +func TestOrderLogisticsFee(t *testing.T) { + result, err := api.OrderLogisticsFee(1100687990339131759) if err != nil { t.Fatal(err) }