From 0f8cb39ac3bc2e9fd458febdf67cb16c51f5fbfe Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 14 Nov 2018 15:34:43 +0800 Subject: [PATCH] - setStoreSkuSyncStatus --- business/partner/purchase/ebai/store_sku.go | 30 +++++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/business/partner/purchase/ebai/store_sku.go b/business/partner/purchase/ebai/store_sku.go index 3699452c9..92a54bb2a 100644 --- a/business/partner/purchase/ebai/store_sku.go +++ b/business/partner/purchase/ebai/store_sku.go @@ -142,22 +142,24 @@ func (p *PurchaseHandler) FullSyncStoreSkus(ctx *jxcontext.Context, parentTask t userName := ctx.GetUserName() globals.SugarLogger.Debugf("FullSyncStoreSkus storeID:%d, isContinueWhenError:%t, userName:%s", storeID, isContinueWhenError, userName) + db := dao.GetDB() rootTask := tasksch.NewSeqTask("FullSyncStoreSkus", userName, func(rootTask *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) { switch step { case 0: err = p.DeleteRemoteSkus(storeID, nil) case 1: - err = p.DeleteRemoteCategories(storeID, nil) + _, err = p.setStoreSkuSyncStatus(ctx, db, storeID, nil, model.SyncFlagNewMask) case 2: - db := dao.GetDB() - err = p.SyncLocalStoreCategory(db, storeID, userName) + err = p.DeleteRemoteCategories(storeID, nil) case 3: - _, err = p.SyncStoreCategory(ctx, rootTask, storeID, false) + err = p.SyncLocalStoreCategory(db, storeID, userName) case 4: + _, err = p.SyncStoreCategory(ctx, rootTask, storeID, false) + case 5: _, err = p.SyncStoreSkus(ctx, rootTask, storeID, nil, true, isContinueWhenError) } return nil, err - }, 5) + }, 6) tasksch.AddChild(parentTask, rootTask).Run() if !isAsync { _, err = rootTask.GetResult(0) @@ -534,6 +536,24 @@ func (p *PurchaseHandler) updateLocalCatAsNew(db *dao.DaoDB, localCatMap map[str return nil } +func (p *PurchaseHandler) setStoreSkuSyncStatus(ctx *jxcontext.Context, db *dao.DaoDB, storeID int, skuIDs []int, syncStatus int) (num int64, err error) { + sql := ` + UPDATE store_sku_bind + SET ebai_sync_status = ebai_sync_status | ? + WHERE deleted_at = ? AND store_id = ? + ` + sqlParams := []interface{}{ + syncStatus, + utils.DefaultTimeValue, + storeID, + } + if len(skuIDs) > 0 { + sql += " AND sku_id IN (" + dao.GenQuestionMarks(len(skuIDs)) + ")" + sqlParams = append(sqlParams, skuIDs) + } + return dao.ExecuteSQL(db, sql, sqlParams...) +} + func formatName(name string) string { return utils.TrimBlankChar(utils.FilterMb4(name)) }