diff --git a/business/model/dao/store_sku.go b/business/model/dao/store_sku.go index e6fdd53a6..cf1da0faa 100644 --- a/business/model/dao/store_sku.go +++ b/business/model/dao/store_sku.go @@ -64,8 +64,8 @@ func GetSkusCategories(db *DaoDB, vendorID, storeID int, skuIDs []int, level int sql += " AND t1.sku_id IN (" + GenQuestionMarks(len(skuIDs)) + ")" sqlParams = append(sqlParams, skuIDs) } - filedPrefix := ConvertDBFieldPrefix(model.VendorNames[vendorID]) - sql = fmt.Sprintf(sql, filedPrefix, filedPrefix, filedPrefix, filedPrefix) + fieldPrefix := ConvertDBFieldPrefix(model.VendorNames[vendorID]) + sql = fmt.Sprintf(sql, fieldPrefix, fieldPrefix, fieldPrefix, fieldPrefix) if err = GetRows(db, &cats, sql, sqlParams...); err != nil { return nil, err } @@ -73,7 +73,7 @@ func GetSkusCategories(db *DaoDB, vendorID, storeID int, skuIDs []int, level int } func GetStoreCategories(db *DaoDB, vendorID, storeID int, level int) (cats []*StoreCatSyncInfo, err error) { - filedPrefix := ConvertDBFieldPrefix(model.VendorNames[vendorID]) + fieldPrefix := ConvertDBFieldPrefix(model.VendorNames[vendorID]) sql := fmt.Sprintf(` SELECT t5.*, t4.name cat_name, t4.seq, t4p.name parent_cat_name, t5p.category_id parent_cat_id, t5p.%s_id parent_vendor_cat_id, t5p.%s_sync_status parent_cat_sync_status FROM store_sku_category_map t5 @@ -81,7 +81,7 @@ func GetStoreCategories(db *DaoDB, vendorID, storeID int, level int) (cats []*St LEFT JOIN sku_category t4p ON t4.parent_id = t4p.id LEFT JOIN store_sku_category_map t5p ON t4p.id = t5p.category_id AND t5p.deleted_at = ? WHERE t5.store_id = ? AND t4.level = ? AND t5.%s_sync_status <> 0 - `, filedPrefix, filedPrefix, filedPrefix) + `, fieldPrefix, fieldPrefix, fieldPrefix) if err = GetRows(db, &cats, sql, utils.DefaultTimeValue, storeID, level); err != nil { return nil, err } @@ -138,8 +138,8 @@ func GetStoreSkus(db *DaoDB, vendorID, storeID int, skuIDs []int) (skus []*Store sql += " AND t1.sku_id IN (" + GenQuestionMarks(len(skuIDs)) + ")" sqlParams = append(sqlParams, skuIDs) } - filedPrefix := ConvertDBFieldPrefix(model.VendorNames[vendorID]) - sql = fmt.Sprintf(sql, tableName, filedPrefix, filedPrefix, filedPrefix, filedPrefix, filedPrefix, filedPrefix, filedPrefix, filedPrefix) + fieldPrefix := ConvertDBFieldPrefix(model.VendorNames[vendorID]) + sql = fmt.Sprintf(sql, tableName, fieldPrefix, fieldPrefix, fieldPrefix, fieldPrefix, fieldPrefix, fieldPrefix, fieldPrefix, fieldPrefix) // globals.SugarLogger.Debug(sql) if err = GetRows(db, &skus, sql, sqlParams...); err != nil { return nil, err @@ -147,12 +147,13 @@ func GetStoreSkus(db *DaoDB, vendorID, storeID int, skuIDs []int) (skus []*Store return skus, err } -func SetStoreSkuSyncStatus(ctx *jxcontext.Context, db *DaoDB, storeID int, skuIDs []int, syncStatus int) (num int64, err error) { - sql := ` +func SetStoreSkuSyncStatus(ctx *jxcontext.Context, db *DaoDB, vendorID, storeID int, skuIDs []int, syncStatus int) (num int64, err error) { + fieldPrefix := ConvertDBFieldPrefix(model.VendorNames[vendorID]) + sql := fmt.Sprintf(` UPDATE store_sku_bind - SET ebai_sync_status = ebai_sync_status | ? + SET %s_sync_status = %s_sync_status | ? WHERE deleted_at = ? AND store_id = ? - ` + `, fieldPrefix, fieldPrefix) sqlParams := []interface{}{ syncStatus, utils.DefaultTimeValue, diff --git a/business/partner/purchase/ebai/store_sku.go b/business/partner/purchase/ebai/store_sku.go index a836136b9..1d2f242c3 100644 --- a/business/partner/purchase/ebai/store_sku.go +++ b/business/partner/purchase/ebai/store_sku.go @@ -539,7 +539,7 @@ func (p *PurchaseHandler) updateLocalCatAsNew(db *dao.DaoDB, localCatMap map[str } func (p *PurchaseHandler) setStoreSkuSyncStatus(ctx *jxcontext.Context, db *dao.DaoDB, storeID int, skuIDs []int, syncStatus int) (num int64, err error) { - return dao.SetStoreSkuSyncStatus(ctx, db, storeID, skuIDs, syncStatus) + return dao.SetStoreSkuSyncStatus(ctx, db, model.VendorIDEBAI, storeID, skuIDs, syncStatus) } func formatName(name string) string { diff --git a/business/partner/purchase/mtwm/store_sku.go b/business/partner/purchase/mtwm/store_sku.go index ee19a7ecc..baa3bd4d1 100644 --- a/business/partner/purchase/mtwm/store_sku.go +++ b/business/partner/purchase/mtwm/store_sku.go @@ -2,6 +2,7 @@ package mtwm import ( "errors" + "fmt" "git.rosy.net.cn/baseapi/platformapi/mtwmapi" "git.rosy.net.cn/baseapi/utils" @@ -24,12 +25,13 @@ func (p *PurchaseHandler) SyncStoreCategory(ctx *jxcontext.Context, parentTask t strStoreID := utils.Int2Str(storeID) num := 0 db := dao.GetDB() - rootTask := tasksch.NewSeqTask("mtwm SyncStoreCategory", userName, func(rootTask *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) { + rootTask := tasksch.NewSeqTask("美团外卖SyncStoreCategory step1", userName, func(rootTask *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) { level := step + 1 catList, err := dao.GetStoreCategories(db, model.VendorIDMTWM, storeID, level) if len(catList) > 0 { + globals.SugarLogger.Debug(utils.Format4Output(catList, false)) num += len(catList) - task := tasksch.NewParallelTask("mtwm SyncStoreCategory2", nil, userName, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + task := tasksch.NewParallelTask(fmt.Sprintf("美团外卖SyncStoreCategory step2, level=%d", level), nil, userName, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { updateFields := []string{dao.GetSyncStatusStructField(model.VendorNames[model.VendorIDMTWM])} catInfo := batchItemList[0].(*dao.StoreCatSyncInfo) if globals.EnableStoreWrite && globals.EnableMtwmStoreWrite { @@ -297,18 +299,16 @@ func (p *PurchaseHandler) FullSyncStoreSkus(ctx *jxcontext.Context, parentTask t case 0: err = p.DeleteRemoteSkus(storeID, nil) case 1: - _, err = dao.SetStoreSkuSyncStatus(ctx, db, storeID, nil, model.SyncFlagNewMask) + _, err = dao.SetStoreSkuSyncStatus(ctx, db, model.VendorIDMTWM, storeID, nil, model.SyncFlagNewMask) case 2: - err = p.DeleteRemoteCategories(storeID, nil) - case 3: _, err = p.SyncLocalStoreCategory(ctx, db, storeID, true, false) - case 4: + case 3: _, err = p.SyncStoreCategory(ctx, rootTask, storeID, false) - case 5: + case 4: _, err = p.SyncStoreSkus(ctx, rootTask, storeID, nil, true, isContinueWhenError) } return nil, err - }, 6) + }, 5) tasksch.AddChild(parentTask, rootTask).Run() if !isAsync { _, err = rootTask.GetResult(0) diff --git a/conf/app.conf b/conf/app.conf index 1cd447542..323d11ce4 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -85,6 +85,7 @@ dbConnectStr = "root:WebServer@1@tcp(db1.int.jxc4.com:3306)/jxd_dev_0?charset=ut enableStoreWrite = true enableEbaiStoreWrite = true +enableMtwmStoreWrite = true [prod2] httpport = 8082