+ partner.ListOrders

+ AmendMissingOrders
This commit is contained in:
gazebo
2019-07-18 18:46:14 +08:00
parent 9db41bb15a
commit d5752381c7
10 changed files with 309 additions and 5 deletions

View File

@@ -1,6 +1,7 @@
package ebai
import (
"fmt"
"math"
"time"
@@ -563,3 +564,43 @@ func (c *PurchaseHandler) AdjustOrder(ctx *jxcontext.Context, order *model.Goods
}
return err
}
func (c *PurchaseHandler) ListOrders(ctx *jxcontext.Context, parentTask tasksch.ITask, queryDate time.Time, vendorStoreID string) (vendorOrderIDs []string, err error) {
if utils.IsTimeZero(queryDate) {
return nil, fmt.Errorf("queryDate必须指定")
}
fromDate := utils.Time2Date(queryDate)
toDate := fromDate.Add(24*time.Hour - 1)
var shopList []*ebaiapi.ShopInfo
if vendorStoreID == "" {
shopList, err = api.EbaiAPI.ShopList(ebaiapi.SysStatusAll)
if err != nil {
return nil, err
}
} else {
shopList = []*ebaiapi.ShopInfo{
&ebaiapi.ShopInfo{
BaiduShopID: utils.Str2Int64(vendorStoreID),
},
}
}
task := tasksch.NewParallelTask("ebai ListOrders", nil, ctx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
shop := batchItemList[0].(*ebaiapi.ShopInfo)
orderList, err := api.EbaiAPI.OrderListAll("", shop.BaiduShopID, fromDate.Unix(), toDate.Unix(), 0)
if err == nil {
retVal = orderList
}
return retVal, err
}, shopList)
tasksch.HandleTask(task, parentTask, true).Run()
orderList, err := task.GetResult(0)
if err == nil && len(orderList) > 0 {
vendorOrderIDs = make([]string, len(orderList))
for k, v := range orderList {
orderInfo := v.(*ebaiapi.ListOrderItemInfo)
vendorOrderIDs[k] = orderInfo.OrderID
}
}
return vendorOrderIDs, err
}

View File

@@ -3,11 +3,22 @@ package ebai
import (
"testing"
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
"git.rosy.net.cn/baseapi/utils"
)
func TestGetOrder4PartRefund(t *testing.T) {
order, err := new(PurchaseHandler).GetOrder4PartRefund("1556529608021993938")
order, err := CurPurchaseHandler.GetOrder4PartRefund("1556529608021993938")
if err != nil {
t.Fatal(err.Error())
} else {
t.Log(utils.Format4Output(order, false))
}
}
func TestListOrders(t *testing.T) {
order, err := CurPurchaseHandler.ListOrders(jxcontext.AdminCtx, nil, utils.GetCurDate(), utils.DefaultTimeValue, "")
if err != nil {
t.Fatal(err.Error())
} else {

View File

@@ -1,6 +1,7 @@
package jd
import (
"fmt"
"strings"
"time"
@@ -411,3 +412,27 @@ func (c *PurchaseHandler) AdjustOrder(ctx *jxcontext.Context, order *model.Goods
}
return err
}
func (c *PurchaseHandler) ListOrders(ctx *jxcontext.Context, parentTask tasksch.ITask, queryDate time.Time, vendorStoreID string) (vendorOrderIDs []string, err error) {
if utils.IsTimeZero(queryDate) {
return nil, fmt.Errorf("queryDate必须指定")
}
fromDate := utils.Time2Date(queryDate)
toDate := fromDate.Add(24*time.Hour - 1)
params := map[string]interface{}{
"orderPurchaseTime_begin": utils.Time2Str(fromDate),
"orderPurchaseTime_end": utils.Time2Str(toDate),
jdapi.KeyPageNo: jdapi.AllPage,
}
if vendorStoreID != "" {
params["deliveryStationNo"] = vendorStoreID
}
orderList, _, err := api.JdAPI.OrderQuery2(params)
if err == nil {
vendorOrderIDs = make([]string, len(orderList))
for k, v := range orderList {
vendorOrderIDs[k] = utils.Int64ToStr(v.OrderID)
}
}
return vendorOrderIDs, err
}

View File

@@ -2,6 +2,10 @@ package jd
import (
"testing"
"time"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
_ "git.rosy.net.cn/jx-callback/business/jxcallback/orderman"
"git.rosy.net.cn/jx-callback/business/model"
@@ -17,8 +21,7 @@ func TestSwitch2SelfDeliver(t *testing.T) {
orderID := "817540316000041"
if order, err := partner.CurOrderManager.LoadOrder(orderID, model.VendorIDJD); err == nil {
// globals.SugarLogger.Debug(order)
c := new(PurchaseHandler)
if err = c.Swtich2SelfDeliver(order, ""); err == nil {
if err = curPurchaseHandler.Swtich2SelfDeliver(order, ""); err == nil {
} else {
t.Fatal(err.Error())
}
@@ -28,8 +31,16 @@ func TestSwitch2SelfDeliver(t *testing.T) {
}
func TestGetOrder(t *testing.T) {
_, err := new(PurchaseHandler).GetOrder("815536199000222")
_, err := curPurchaseHandler.GetOrder("815536199000222")
if err != nil {
t.Fatal(err.Error())
}
}
func TestListOrders(t *testing.T) {
result, err := curPurchaseHandler.ListOrders(jxcontext.AdminCtx, nil, time.Now(), "")
if err != nil {
t.Fatal(err.Error())
}
t.Log(utils.Format4Output(result, false))
}

View File

@@ -13,6 +13,7 @@ import (
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
"git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
"git.rosy.net.cn/jx-callback/business/jxutils/tasksch"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/globals"
@@ -525,3 +526,51 @@ func (c *PurchaseHandler) AdjustOrder(ctx *jxcontext.Context, order *model.Goods
}
return err
}
func (c *PurchaseHandler) ListOrders(ctx *jxcontext.Context, parentTask tasksch.ITask, queryDate time.Time, vendorStoreID string) (vendorOrderIDs []string, err error) {
if utils.IsTimeZero(queryDate) {
return nil, fmt.Errorf("queryDate必须指定")
}
queryDate = utils.Time2Date(queryDate)
var vendorStoreIDs []string
if vendorStoreID == "" {
vendorStoreIDs, err = api.MtwmAPI.PoiGetIDs()
if err != nil {
return nil, err
}
} else {
vendorStoreIDs = []string{vendorStoreID}
}
task := tasksch.NewParallelTask("mtwm ListOrders", nil, ctx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
vendorStoreID := batchItemList[0].(string)
var orderIDs []string
seqStart := 1
for {
seqEnd := seqStart + mtwmapi.MaxGap4GetOrderIdByDaySeq - 1
tmpOrderIDs, err2 := 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) == 0 {
err = nil
break
}
seqStart = seqEnd + 1
}
retVal = orderIDs
return retVal, nil
}, vendorStoreIDs)
tasksch.HandleTask(task, parentTask, true).Run()
orderList, err := task.GetResult(0)
if err == nil && len(orderList) > 0 {
vendorOrderIDs = make([]string, len(orderList))
for k, v := range orderList {
vendorOrderIDs[k] = v.(string)
}
}
return vendorOrderIDs, err
}

View File

@@ -2,13 +2,24 @@ package mtwm
import (
"testing"
"time"
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
"git.rosy.net.cn/baseapi/utils"
_ "git.rosy.net.cn/jx-callback/business/jxcallback/orderman"
)
func TestGetOrder(t *testing.T) {
result, err := new(PurchaseHandler).GetOrder("33437032333978492")
result, err := curPurchaseHandler.GetOrder("33437032333978492")
if err != nil {
t.Fatal(err)
}
t.Log(utils.Format4Output(result, false))
}
func TestListOrders(t *testing.T) {
result, err := curPurchaseHandler.ListOrders(jxcontext.AdminCtx, nil, time.Now(), "4626746")
if err != nil {
t.Fatal(err)
}