- 优化AmendMissingOrders

This commit is contained in:
gazebo
2019-08-28 18:08:41 +08:00
parent 7cb6708165
commit d0fd45e751

View File

@@ -1090,15 +1090,23 @@ func (c *OrderManager) AmendMissingOrders(ctx *jxcontext.Context, vendorIDs []in
vendorIDs = append(vendorIDs, vendorID) vendorIDs = append(vendorIDs, vendorID)
} }
} }
type tDateVendorPair struct { if len(vendorIDs) == 0 {
QueryDate time.Time return "", fmt.Errorf("找不到指定的平台")
VendorID int
} }
fromDate = utils.Time2Date(fromDate) fromDate = utils.Time2Date(fromDate)
if utils.IsTimeZero(toDate) { if utils.IsTimeZero(toDate) {
toDate = fromDate toDate = fromDate
} }
toDate = utils.Time2Date(toDate) toDate = utils.Time2Date(toDate)
if toDate.Sub(fromDate) > 7*24*time.Hour {
return "", fmt.Errorf("最多一次一周,请调整时间")
}
type tDateVendorPair struct {
QueryDate time.Time
VendorID int
}
var dateVendorList []*tDateVendorPair var dateVendorList []*tDateVendorPair
for _, vendorID := range vendorIDs { for _, vendorID := range vendorIDs {
for tmpDate := fromDate; tmpDate.Sub(toDate) <= 0; tmpDate = tmpDate.Add(24 * time.Hour) { for tmpDate := fromDate; tmpDate.Sub(toDate) <= 0; tmpDate = tmpDate.Add(24 * time.Hour) {
@@ -1114,21 +1122,21 @@ func (c *OrderManager) AmendMissingOrders(ctx *jxcontext.Context, vendorIDs []in
} }
if len(dateVendorList) > 0 { if len(dateVendorList) > 0 {
var missingOrderList []*tOrderVendorPair var missingOrderList []*tOrderVendorPair
db := dao.GetDB()
vendorStoreIDMap := make(map[int]string)
if storeID > 0 {
for _, vendorID := range vendorIDs {
storeDetail, err2 := dao.GetStoreDetail(db, storeID, vendorID)
if err = err2; err != nil {
return "", err
}
vendorStoreIDMap[vendorID] = storeDetail.VendorStoreID
}
}
task := tasksch.NewSeqTask("AmendMissingOrders", ctx, task := tasksch.NewSeqTask("AmendMissingOrders", ctx,
func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) { func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
switch step { switch step {
case 0: case 0:
db := dao.GetDB()
vendorStoreIDMap := make(map[int]string)
if storeID > 0 {
for _, vendorID := range vendorIDs {
storeDetail, err2 := dao.GetStoreDetail(db, storeID, vendorID)
if err = err2; err != nil {
return "", err
}
vendorStoreIDMap[vendorID] = storeDetail.VendorStoreID
}
}
task1 := tasksch.NewParallelTask("AmendMissingOrders ListOrders", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, task1 := tasksch.NewParallelTask("AmendMissingOrders ListOrders", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
vendorDate := batchItemList[0].(*tDateVendorPair) vendorDate := batchItemList[0].(*tDateVendorPair)