From 46ee522bbbc2f141444cc6c84bce87c22f043e8f Mon Sep 17 00:00:00 2001 From: gazebo Date: Sun, 12 May 2019 18:15:47 +0800 Subject: [PATCH] - mtwmapi.OrderGetOrderDetail2 --- platformapi/jdapi/order_test.go | 12 +++++-- platformapi/mtwmapi/callback.go | 23 ++++++------ platformapi/mtwmapi/order.go | 60 +++++++++++++++++++++++++++++++ platformapi/mtwmapi/order_test.go | 10 +++++- utils/typeconv.go | 1 + 5 files changed, 92 insertions(+), 14 deletions(-) diff --git a/platformapi/jdapi/order_test.go b/platformapi/jdapi/order_test.go index d09c795a..d1b18f0b 100644 --- a/platformapi/jdapi/order_test.go +++ b/platformapi/jdapi/order_test.go @@ -163,7 +163,7 @@ func TestOrderAcceptOperate(t *testing.T) { } func TestOrderJDZBDelivery(t *testing.T) { - result, err := api.OrderJDZBDelivery("813344594000041", "") + result, err := api.OrderJDZBDelivery("911350836000622", "") if err != nil { t.Fatal(err.Error()) } @@ -195,7 +195,15 @@ func TestDeliveryEndOrder(t *testing.T) { } func TestGetAfsService(t *testing.T) { - result, err := api.GetAfsService2("22534674") + result, err := api.GetAfsService("22565438") + if err != nil { + t.Fatal(err.Error()) + } + sugarLogger.Debug(utils.Format4Output(result, false)) +} + +func TestGetAfsService2(t *testing.T) { + result, err := api.GetAfsService2("22565438") if err != nil { t.Fatal(err.Error()) } diff --git a/platformapi/mtwmapi/callback.go b/platformapi/mtwmapi/callback.go index de241125..d3ae5187 100644 --- a/platformapi/mtwmapi/callback.go +++ b/platformapi/mtwmapi/callback.go @@ -38,21 +38,19 @@ type CallbackResponse struct { Data string `json:"data"` } -type CallbackSysInfo struct { +// 全额退款没有Food, FoodList, Money项 +type CallbackRefundInfo struct { Timestamp int64 `json:"timestamp"` AppID string `json:"app_id"` Sig string `json:"sig"` -} -// 全额退款没有Food, FoodList, Money项 -type CallbackRefundInfo struct { - CallbackSysInfo - OrderID int64 `json:"order_id"` - NotifyType string `json:"notify_type"` - Reason string `json:"reason"` - ResType int `json:"res_type"` - IsAppeal int `json:"is_appeal"` - Pictures string `json:"pictures"` + OrderID int64 `json:"order_id"` + NotifyType string `json:"notify_type"` + Reason string `json:"reason"` + ResType int `json:"res_type"` + IsAppeal int `json:"is_appeal"` + Pictures string `json:"pictures"` + PictureList []string `json:"pictureList"` Food string `json:"food"` FoodList []*RefundSkuDetail `json:"foodList"` @@ -116,6 +114,9 @@ func (a *API) GetCallbackMsg(request *http.Request) (msg *CallbackMsg, callbackR if refundData.Food != "" { utils.UnmarshalUseNumber([]byte(refundData.Food), &refundData.FoodList) } + if refundData.Pictures != "" { + utils.UnmarshalUseNumber([]byte(refundData.Pictures), &refundData.PictureList) + } msg.Data = refundData } } diff --git a/platformapi/mtwmapi/order.go b/platformapi/mtwmapi/order.go index edd7965c..1d8e3c1e 100644 --- a/platformapi/mtwmapi/order.go +++ b/platformapi/mtwmapi/order.go @@ -108,6 +108,58 @@ type RefundOrderDetail struct { WmOrderIDView int64 `json:"wm_order_id_view"` } +type OrderInfo struct { + AppOrderCode string `json:"app_order_code"` + AppPoiCode string `json:"app_poi_code"` + AvgSendTime int `json:"avg_send_time"` + BackupRecipientPhone string `json:"backup_recipient_phone"` + Caution string `json:"caution"` + CityID int `json:"city_id"` + Ctime int64 `json:"ctime"` + DaySeq int `json:"day_seq"` + DeliveryTime int `json:"delivery_time"` + Detail string `json:"detail"` + DinnersNumber int `json:"dinners_number"` + ExpectDeliverTime int `json:"expect_deliver_time"` + Extras string `json:"extras"` + HasInvoiced int `json:"has_invoiced"` + InvoiceTitle string `json:"invoice_title"` + IsFavorites bool `json:"is_favorites"` + IsPoiFirstOrder bool `json:"is_poi_first_order"` + IsPre int `json:"is_pre"` + IsThirdShipping int `json:"is_third_shipping"` + Latitude float64 `json:"latitude"` + LogisticsCode string `json:"logistics_code"` + Longitude float64 `json:"longitude"` + OrderCompletedTime int `json:"order_completed_time"` + OrderConfirmTime int `json:"order_confirm_time"` + OrderID int64 `json:"order_id"` + OrderSendTime int `json:"order_send_time"` + OriginalPrice float64 `json:"original_price"` + PackageBagMoney int `json:"package_bag_money"` + PayType int `json:"pay_type"` + PickType int `json:"pick_type"` + PoiReceiveDetail string `json:"poi_receive_detail"` + RecipientAddress string `json:"recipient_address"` + RecipientName string `json:"recipient_name"` + RecipientPhone string `json:"recipient_phone"` + Remark string `json:"remark"` + Result string `json:"result"` + ShipperPhone string `json:"shipper_phone"` + ShippingFee int `json:"shipping_fee"` + ShippingType int `json:"shipping_type"` + SourceID int `json:"source_id"` + Status int `json:"status"` + TaxpayerID string `json:"taxpayer_id"` + Total float64 `json:"total"` + Utime int64 `json:"utime"` + WmOrderIDView int64 `json:"wm_order_id_view"` + WmPoiAddress string `json:"wm_poi_address"` + WmPoiID int `json:"wm_poi_id"` + WmPoiName string `json:"wm_poi_name"` + WmPoiPhone string `json:"wm_poi_phone"` +} + func (a *API) OrderReceived(orderID int64) (err error) { _, err = a.AccessAPI("order/poi_received", true, map[string]interface{}{ KeyOrderID: orderID, @@ -195,6 +247,14 @@ func (a *API) OrderGetOrderDetail(orderID int64, isMTLogistics bool) (orderInfo return nil, err } +func (a *API) OrderGetOrderDetail2(orderID int64, isMTLogistics bool) (orderInfo *OrderInfo, err error) { + orderMap, err := a.OrderGetOrderDetail(orderID, isMTLogistics) + if err == nil { + err = utils.Map2StructByJson(orderMap, &orderInfo, false) + } + return orderInfo, err +} + func (a *API) OrderLogisticsPush(orderID int64, reason string) (err error) { _, err = a.AccessAPI("order/logistics/push", true, map[string]interface{}{ KeyOrderID: orderID, diff --git a/platformapi/mtwmapi/order_test.go b/platformapi/mtwmapi/order_test.go index d9aa1a3e..81f48df6 100644 --- a/platformapi/mtwmapi/order_test.go +++ b/platformapi/mtwmapi/order_test.go @@ -15,7 +15,7 @@ func TestOrderViewStatus(t *testing.T) { } func TestOrderGetOrderDetail(t *testing.T) { - result, err := api.OrderGetOrderDetail(25236872740350976, false) + result, err := api.OrderGetOrderDetail(69299961008767093, false) if err != nil { t.Fatal(err) } @@ -25,6 +25,14 @@ func TestOrderGetOrderDetail(t *testing.T) { t.Log(utils.Format4Output(result, false)) } +func TestOrderGetOrderDetail2(t *testing.T) { + result, err := api.OrderGetOrderDetail2(68689721416501384, false) + if err != nil { + t.Fatal(err) + } + t.Log(utils.Format4Output(result, false)) +} + func TestOrderReceived(t *testing.T) { err := api.OrderReceived(25236872740350976) if err != nil { diff --git a/utils/typeconv.go b/utils/typeconv.go index 527302cd..818fdcc0 100644 --- a/utils/typeconv.go +++ b/utils/typeconv.go @@ -486,6 +486,7 @@ func Struct2FlatMap(obj interface{}) map[string]interface{} { return FlatMap(m) } +// !!! 此函数好像不支持struct是内嵌结构的 func Map2StructByJson(inObj interface{}, outObjAddr interface{}, weaklyTypedInput bool) (err error) { decoder, _ := mapstructure.NewDecoder(&mapstructure.DecoderConfig{ TagName: "json",