From 00cfa73f92a48625b230c571daf0bef43fe065d6 Mon Sep 17 00:00:00 2001 From: gazebo Date: Mon, 26 Nov 2018 10:03:57 +0800 Subject: [PATCH] - and param skuIDs to RefreshJdStoreSkuStock to speedup it --- business/jxstore/promotion/jd_promotion.go | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/business/jxstore/promotion/jd_promotion.go b/business/jxstore/promotion/jd_promotion.go index 58b97b655..70c3981ef 100644 --- a/business/jxstore/promotion/jd_promotion.go +++ b/business/jxstore/promotion/jd_promotion.go @@ -215,12 +215,12 @@ func scheduleRoutine(isFirst bool) { if isFirst { go func() { RefreshJdLockStoreSku() - RefreshJdStoreSkuStock(0) + RefreshJdStoreSkuStock(0, nil) }() } time.AfterFunc(stockRefreshGap, func() { RefreshJdLockStoreSku() - RefreshJdStoreSkuStock(0) + RefreshJdStoreSkuStock(0, nil) scheduleRoutine(false) }) } @@ -701,8 +701,8 @@ func RefreshJdLockStoreSku() (err error) { return RefreshJdPromotionItemListLockStatus(promotionItemList) } -func RefreshJdStoreSkuStock(promotionID int) (err error) { - globals.SugarLogger.Debug("RefreshJdStoreSkuStock promotionID:%d", promotionID) +func RefreshJdStoreSkuStock(promotionID int, skuIDs []int) (err error) { + globals.SugarLogger.Debugf("RefreshJdStoreSkuStock promotionID:%d", promotionID) sql := ` SELECT t22.vendor_store_id, t3.sku_id, t32.jd_id, MAX(t3.is_lock) is_lock, MAX(t1.end_at) end_at @@ -729,6 +729,10 @@ func RefreshJdStoreSkuStock(promotionID int) (err error) { sql += " AND t1.id = ?" sqlParams = append(sqlParams, promotionID) } + if len(skuIDs) > 0 { + sql += " AND t3.sku_id IN (" + dao.GenQuestionMarks(len(skuIDs)) + ")" + sqlParams = append(sqlParams, skuIDs) + } sql += ` GROUP BY 1,2,3 ORDER BY 1,2,3 @@ -741,7 +745,7 @@ func RefreshJdStoreSkuStock(promotionID int) (err error) { } return err } - globals.SugarLogger.Debug("RefreshJdStoreSkuStock promotionID:%d, len(promotionItemList)=%d", promotionID, len(promotionItemList)) + globals.SugarLogger.Debugf("RefreshJdStoreSkuStock promotionID:%d, len(promotionItemList)=%d", promotionID, len(promotionItemList)) if len(promotionItemList) > 0 { task := tasksch.NewParallelTask("RefreshJdStoreSkuStock", tasksch.NewParallelConfig().SetBatchSize(jdapi.MaxStoreSkuBatchSize).SetIsContinueWhenError(true), "schedule", func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { stockList := make([]*jdapi.SkuStock, 0) @@ -869,7 +873,7 @@ func LockPromotionSkus(ctx *jxcontext.Context, promotionID int, isLock int, skuI } RefreshJdPromotionLockStatus(ctx, promotionID) if isLock != 0 { - RefreshJdStoreSkuStock(promotionID) + RefreshJdStoreSkuStock(promotionID, skuIDs) } } globals.SugarLogger.Debugf("end LockPromotionSkus promotionID:%d, isLock:%d, skuIDs:%v", promotionID, isLock, skuIDs)