From 086c4199f21369791faebedca4601f5d40c34e50 Mon Sep 17 00:00:00 2001 From: gazebo Date: Tue, 29 Oct 2019 18:25:45 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96mtwm.ListOrders?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/mtwm/order.go | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/business/partner/purchase/mtwm/order.go b/business/partner/purchase/mtwm/order.go index d27769f5f..cdf04c24c 100644 --- a/business/partner/purchase/mtwm/order.go +++ b/business/partner/purchase/mtwm/order.go @@ -3,6 +3,7 @@ package mtwm import ( "errors" "fmt" + "math" "net/url" "regexp" "strings" @@ -571,19 +572,29 @@ func (c *PurchaseHandler) ListOrders(ctx *jxcontext.Context, parentTask tasksch. vendorStoreID := batchItemList[0].(string) var orderIDs []string seqStart := 1 + i := 0 for { - seqEnd := seqStart + mtwmapi.MaxGap4GetOrderIdByDaySeq - 1 - tmpOrderIDs, err2 := api.MtwmAPI.GetOrderIdByDaySeq(vendorStoreID, queryDate, seqStart, seqEnd) + batchSize := int(math.Min(math.Pow(2, float64(i)), float64(mtwmapi.MaxGap4GetOrderIdByDaySeq))) + seqEnd := seqStart + batchSize - 1 + var tmpOrderIDs []int64 + if seqStart == seqEnd { + if vendorOderID, err2 := api.MtwmAPI.GetOrderIdByDaySeqSingle(vendorStoreID, queryDate, seqStart); err2 == nil { + tmpOrderIDs = []int64{vendorOderID} + } + } else { + tmpOrderIDs, err = api.MtwmAPI.GetOrderIdByDaySeq(vendorStoreID, queryDate, seqStart, seqEnd) + } if len(tmpOrderIDs) > 0 { for _, v := range tmpOrderIDs { orderIDs = append(orderIDs, utils.Int64ToStr(v)) } } - if err = err2; err != nil || len(tmpOrderIDs) < mtwmapi.MaxGap4GetOrderIdByDaySeq { + if err != nil || len(tmpOrderIDs) < batchSize { err = nil break } seqStart = seqEnd + 1 + i++ } retVal = orderIDs return retVal, nil