- mtwm.FullSyncStoreSkus
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||||||
"git.rosy.net.cn/jx-callback/business/model"
|
"git.rosy.net.cn/jx-callback/business/model"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -145,3 +146,21 @@ func GetStoreSkus(db *DaoDB, vendorID, storeID int, skuIDs []int) (skus []*Store
|
|||||||
}
|
}
|
||||||
return skus, err
|
return skus, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func SetStoreSkuSyncStatus(ctx *jxcontext.Context, db *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 (" + GenQuestionMarks(len(skuIDs)) + ")"
|
||||||
|
sqlParams = append(sqlParams, skuIDs)
|
||||||
|
}
|
||||||
|
return ExecuteSQL(db, sql, sqlParams...)
|
||||||
|
}
|
||||||
|
|||||||
@@ -539,21 +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) {
|
func (p *PurchaseHandler) setStoreSkuSyncStatus(ctx *jxcontext.Context, db *dao.DaoDB, storeID int, skuIDs []int, syncStatus int) (num int64, err error) {
|
||||||
sql := `
|
return dao.SetStoreSkuSyncStatus(ctx, db, storeID, skuIDs, syncStatus)
|
||||||
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 {
|
func formatName(name string) string {
|
||||||
|
|||||||
@@ -224,7 +224,7 @@ func (p *PurchaseHandler) SyncStoreSkus(ctx *jxcontext.Context, parentTask tasks
|
|||||||
skus, err := dao.GetStoreSkus(db, model.VendorIDMTWM, storeID, skuIDs)
|
skus, err := dao.GetStoreSkus(db, model.VendorIDMTWM, storeID, skuIDs)
|
||||||
// globals.SugarLogger.Debug(utils.Format4Output(skus, false))
|
// globals.SugarLogger.Debug(utils.Format4Output(skus, false))
|
||||||
strStoreID := utils.Int2Str(storeID)
|
strStoreID := utils.Int2Str(storeID)
|
||||||
rootTask := tasksch.NewParallelTask("mtwm SyncStoreSkus", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx.GetUserName(), func(rootTask *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
rootTask := tasksch.NewParallelTask("美团外卖SyncStoreSkus", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx.GetUserName(), func(rootTask *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||||
foodDataList := make([]map[string]interface{}, len(batchItemList))
|
foodDataList := make([]map[string]interface{}, len(batchItemList))
|
||||||
// for k, v := range batchItemList {
|
// for k, v := range batchItemList {
|
||||||
v := batchItemList[0]
|
v := batchItemList[0]
|
||||||
@@ -288,7 +288,32 @@ func (p *PurchaseHandler) RefreshStoresAllSkusID(ctx *jxcontext.Context, parentT
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) FullSyncStoreSkus(ctx *jxcontext.Context, parentTask tasksch.ITask, storeID int, isAsync, isContinueWhenError bool) (hint string, err error) {
|
func (p *PurchaseHandler) FullSyncStoreSkus(ctx *jxcontext.Context, parentTask tasksch.ITask, storeID int, isAsync, isContinueWhenError bool) (hint string, err error) {
|
||||||
return hint, err
|
userName := ctx.GetUserName()
|
||||||
|
globals.SugarLogger.Debugf("mtwm 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 = dao.SetStoreSkuSyncStatus(ctx, db, storeID, nil, model.SyncFlagNewMask)
|
||||||
|
case 2:
|
||||||
|
err = p.DeleteRemoteCategories(storeID, nil)
|
||||||
|
case 3:
|
||||||
|
_, err = p.SyncLocalStoreCategory(ctx, db, storeID, true, false)
|
||||||
|
case 4:
|
||||||
|
_, err = p.SyncStoreCategory(ctx, rootTask, storeID, false)
|
||||||
|
case 5:
|
||||||
|
_, err = p.SyncStoreSkus(ctx, rootTask, storeID, nil, true, isContinueWhenError)
|
||||||
|
}
|
||||||
|
return nil, err
|
||||||
|
}, 6)
|
||||||
|
tasksch.AddChild(parentTask, rootTask).Run()
|
||||||
|
if !isAsync {
|
||||||
|
_, err = rootTask.GetResult(0)
|
||||||
|
}
|
||||||
|
return rootTask.ID, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *PurchaseHandler) DeleteRemoteSkus(storeID int, vendorSkuIDs []string) (err error) {
|
func (p *PurchaseHandler) DeleteRemoteSkus(storeID int, vendorSkuIDs []string) (err error) {
|
||||||
|
|||||||
Reference in New Issue
Block a user