|
|
|
|
@@ -133,7 +133,7 @@ func (p *PurchaseHandler) SyncStoreSkus(ctx *jxcontext.Context, parentTask tasks
|
|
|
|
|
return "", err
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
if err = p.SyncOneStoreCategories(db, storeID, userName); err != nil {
|
|
|
|
|
if _, err = p.SyncStoreCategory(ctx, parentTask, storeID, false); err != nil {
|
|
|
|
|
return "", err
|
|
|
|
|
}
|
|
|
|
|
if err = dao.GetRows(db, &storeSkuInfoList, sql, sqlParams...); err == nil {
|
|
|
|
|
@@ -171,19 +171,6 @@ func (p *PurchaseHandler) SyncStoreSkus(ctx *jxcontext.Context, parentTask tasks
|
|
|
|
|
return "", err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (p *PurchaseHandler) SyncStoresCategories(db *dao.DaoDB, storeIDs []int, userName string) (err error) {
|
|
|
|
|
globals.SugarLogger.Debugf("SyncStoresCategories storeIDs:%d, userName:%s", storeIDs, userName)
|
|
|
|
|
|
|
|
|
|
if globals.EnableStoreWrite {
|
|
|
|
|
for _, storeID := range storeIDs {
|
|
|
|
|
if err = p.SyncOneStoreCategories(db, storeID, userName); err != nil {
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (p *PurchaseHandler) ReadStoreCategories(storeID int) (cats []*model.SkuCategory, err error) {
|
|
|
|
|
return nil, err
|
|
|
|
|
}
|
|
|
|
|
@@ -201,7 +188,7 @@ func (p *PurchaseHandler) GetAllRemoteSkus(storeID int) (skus []map[string]inter
|
|
|
|
|
for i := 2; i <= page1.Pages; i++ {
|
|
|
|
|
pages[i-2] = i
|
|
|
|
|
}
|
|
|
|
|
task := tasksch.RunParallelTask("GetAllRemoteSkus", nil, "", func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
|
|
|
|
task := tasksch.NewParallelTask("GetAllRemoteSkus", nil, "", func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
|
|
|
|
callParams := map[string]interface{}{
|
|
|
|
|
"pagesize": MaxPageSize,
|
|
|
|
|
"page": batchItemList[0],
|
|
|
|
|
@@ -213,6 +200,7 @@ func (p *PurchaseHandler) GetAllRemoteSkus(storeID int) (skus []map[string]inter
|
|
|
|
|
globals.SugarLogger.Debug(utils.Format4Output(callParams, false))
|
|
|
|
|
return nil, err2
|
|
|
|
|
}, pages)
|
|
|
|
|
task.Run()
|
|
|
|
|
result, err2 := task.GetResult(0)
|
|
|
|
|
if err = err2; err == nil {
|
|
|
|
|
for _, v := range result {
|
|
|
|
|
@@ -234,7 +222,7 @@ func (p *PurchaseHandler) DeleteRemoteSkus(storeID int, vendorSkuIDs []string) (
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
task := tasksch.RunParallelTask("DeleteRemoteSkus", tasksch.NewParallelConfig().SetBatchSize(100), "", func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
|
|
|
|
task := tasksch.NewParallelTask("DeleteRemoteSkus", tasksch.NewParallelConfig().SetBatchSize(100), "", func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
|
|
|
|
strList := make([]string, len(batchItemList))
|
|
|
|
|
for k, v := range batchItemList {
|
|
|
|
|
strList[k] = v.(string)
|
|
|
|
|
@@ -244,6 +232,7 @@ func (p *PurchaseHandler) DeleteRemoteSkus(storeID int, vendorSkuIDs []string) (
|
|
|
|
|
}
|
|
|
|
|
return nil, err
|
|
|
|
|
}, vendorSkuIDs)
|
|
|
|
|
task.Run()
|
|
|
|
|
_, err = task.GetResult(0)
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
@@ -259,12 +248,13 @@ func (p *PurchaseHandler) DeleteRemoteCategories(storeID int, vendorCatIDs []int
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
task := tasksch.RunParallelTask("DeleteRemoteCategories", nil, "", func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
|
|
|
|
task := tasksch.NewParallelTask("DeleteRemoteCategories", nil, "", func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
|
|
|
|
if globals.EnableStoreWrite {
|
|
|
|
|
err = api.EbaiAPI.ShopCategoryDelete(strStoreID, batchItemList[0].(int64))
|
|
|
|
|
}
|
|
|
|
|
return nil, err
|
|
|
|
|
}, vendorCatIDs)
|
|
|
|
|
task.Run()
|
|
|
|
|
_, err = task.GetResult(0)
|
|
|
|
|
return err
|
|
|
|
|
}
|
|
|
|
|
@@ -365,10 +355,13 @@ func (p *PurchaseHandler) syncOneStoreCategoriesFromRemote2Local(db *dao.DaoDB,
|
|
|
|
|
// 从本地同步分类信息到饿百
|
|
|
|
|
// 测试过程中出现过,父分类创建成功后马上创建子分类会报没有父分类错
|
|
|
|
|
// todo 对于deleted_at的处理有问题
|
|
|
|
|
func (p *PurchaseHandler) SyncOneStoreCategories(db *dao.DaoDB, storeID int, userName string) (err error) {
|
|
|
|
|
func (p *PurchaseHandler) SyncStoreCategory(ctx *jxcontext.Context, parentTask tasksch.ITask, storeID int, isAsync bool) (hint string, err error) {
|
|
|
|
|
userName := ctx.GetUserName()
|
|
|
|
|
globals.SugarLogger.Debugf("SyncOneStoreCategories storeID:%d, userName:%s", storeID, userName)
|
|
|
|
|
|
|
|
|
|
for level := 1; level <= 2; level++ {
|
|
|
|
|
db := dao.GetDB()
|
|
|
|
|
rootTask := tasksch.NewSeqTask("ebai SyncStoreCategory", userName, func(rootTask *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
|
|
|
|
level := step + 1
|
|
|
|
|
sql := `
|
|
|
|
|
SELECT t2.*, t1.name, t1.parent_id, t1.level, t1.type, t1.seq, t2p.ebai_id parent_ebai_id
|
|
|
|
|
FROM sku_category t1
|
|
|
|
|
@@ -385,7 +378,7 @@ func (p *PurchaseHandler) SyncOneStoreCategories(db *dao.DaoDB, storeID int, use
|
|
|
|
|
}
|
|
|
|
|
if err = dao.GetRows(db, &catList, sql, sqlParams...); err == nil {
|
|
|
|
|
strStoreID := utils.Int2Str(storeID)
|
|
|
|
|
task := tasksch.RunParallelTask("syncOneStoreCategoriesFromLocal2Remote", nil, userName, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
|
|
|
|
task := tasksch.NewParallelTask("syncOneStoreCategoriesFromLocal2Remote", nil, userName, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
|
|
|
|
updateFields := []string{model.FieldEbaiSyncStatus}
|
|
|
|
|
catInfo := batchItemList[0].(*tStoreCatInfo)
|
|
|
|
|
// globals.SugarLogger.Debug(utils.Format4Output(catInfo, false))
|
|
|
|
|
@@ -409,10 +402,16 @@ func (p *PurchaseHandler) SyncOneStoreCategories(db *dao.DaoDB, storeID int, use
|
|
|
|
|
}
|
|
|
|
|
return nil, err
|
|
|
|
|
}, catList)
|
|
|
|
|
rootTask.AddChild(task).Run()
|
|
|
|
|
_, err = task.GetResult(0)
|
|
|
|
|
}
|
|
|
|
|
return nil, err
|
|
|
|
|
}, 2)
|
|
|
|
|
parentTask.AddChild(rootTask).Run()
|
|
|
|
|
if !isAsync {
|
|
|
|
|
_, err = rootTask.GetResult(0)
|
|
|
|
|
}
|
|
|
|
|
return err
|
|
|
|
|
return rootTask.ID, err
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (p *PurchaseHandler) processLocalCatByRemote(db *dao.DaoDB, storeID int, localCatMap map[string]*tStoreCatInfo, remoteCatList []*ebaiapi.CategoryInfo, userName string) (err error) {
|
|
|
|
|
|