- 修复ebai.syncStoreSkus中没有调用SyncStoreCategory的bug
This commit is contained in:
@@ -194,11 +194,6 @@ func (p *PurchaseHandler) SyncStoreSkus(ctx *jxcontext.Context, parentTask tasks
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
}
|
}
|
||||||
if len(skuIDs) == 0 {
|
|
||||||
if _, err = p.SyncStoreCategory(ctx, parentTask, storeID, false); err != nil {
|
|
||||||
return "", err
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return p.syncStoreSkus(ctx, parentTask, storeDetail, skuIDs, isAsync, isContinueWhenError)
|
return p.syncStoreSkus(ctx, parentTask, storeDetail, skuIDs, isAsync, isContinueWhenError)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -215,6 +210,9 @@ func (p *PurchaseHandler) syncStoreSkus(ctx *jxcontext.Context, parentTask tasks
|
|||||||
func(rootTask *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
func(rootTask *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
||||||
if step == 0 {
|
if step == 0 {
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
|
if _, err = p.SyncStoreCategory(ctx, parentTask, storeID, false); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
for i := 0; i < 3; i++ {
|
for i := 0; i < 3; i++ {
|
||||||
if storeSkuInfoList, err = p.getDirtyStoreSkus(db, storeID, skuIDs); err != nil {
|
if storeSkuInfoList, err = p.getDirtyStoreSkus(db, storeID, skuIDs); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -225,6 +223,9 @@ func (p *PurchaseHandler) syncStoreSkus(ctx *jxcontext.Context, parentTask tasks
|
|||||||
if num == 0 {
|
if num == 0 {
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
if _, err = p.SyncStoreCategory(ctx, parentTask, storeID, false); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if num != 0 {
|
if num != 0 {
|
||||||
globals.SugarLogger.Infof("SyncStoreSkus 不能创建商品所需的类别, storeID:%d, skuIDs:%v, isContinueWhenError:%t, userName:%s", storeID, skuIDs, isContinueWhenError, userName)
|
globals.SugarLogger.Infof("SyncStoreSkus 不能创建商品所需的类别, storeID:%d, skuIDs:%v, isContinueWhenError:%t, userName:%s", storeID, skuIDs, isContinueWhenError, userName)
|
||||||
@@ -480,49 +481,51 @@ func (p *PurchaseHandler) SyncStoreCategory(ctx *jxcontext.Context, parentTask t
|
|||||||
utils.DefaultTimeValue,
|
utils.DefaultTimeValue,
|
||||||
}
|
}
|
||||||
if err = dao.GetRows(db, &catList, sql, sqlParams...); err == nil {
|
if err = dao.GetRows(db, &catList, sql, sqlParams...); err == nil {
|
||||||
strStoreID := utils.Int2Str(storeID)
|
if len(catList) > 0 {
|
||||||
task := tasksch.NewParallelTask("SyncStoreCategory", nil, ctx,
|
strStoreID := utils.Int2Str(storeID)
|
||||||
func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
task := tasksch.NewParallelTask("SyncStoreCategory", nil, ctx,
|
||||||
updateFields := []string{model.FieldEbaiSyncStatus}
|
func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||||
catInfo := batchItemList[0].(*tStoreCatInfo)
|
updateFields := []string{model.FieldEbaiSyncStatus}
|
||||||
// globals.SugarLogger.Debug(utils.Format4Output(catInfo, false))
|
catInfo := batchItemList[0].(*tStoreCatInfo)
|
||||||
if catInfo.EbaiSyncStatus&model.SyncFlagDeletedMask != 0 { // 删除
|
// globals.SugarLogger.Debug(utils.Format4Output(catInfo, false))
|
||||||
if catInfo.EbaiSyncStatus&model.SyncFlagNewMask == 0 && catInfo.EbaiID != 0 {
|
if catInfo.EbaiSyncStatus&model.SyncFlagDeletedMask != 0 { // 删除
|
||||||
|
if catInfo.EbaiSyncStatus&model.SyncFlagNewMask == 0 && catInfo.EbaiID != 0 {
|
||||||
|
if globals.EnableEbaiStoreWrite {
|
||||||
|
if err = api.EbaiAPI.ShopCategoryDelete(strStoreID, catInfo.EbaiID); ebaiapi.IsErrCategoryNotExist(err) {
|
||||||
|
err = nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else if catInfo.EbaiSyncStatus&model.SyncFlagNewMask != 0 { // 新增
|
||||||
if globals.EnableEbaiStoreWrite {
|
if globals.EnableEbaiStoreWrite {
|
||||||
if err = api.EbaiAPI.ShopCategoryDelete(strStoreID, catInfo.EbaiID); ebaiapi.IsErrCategoryNotExist(err) {
|
catName := formatName(catInfo.Name)
|
||||||
err = nil
|
catInfo.EbaiID, err = api.EbaiAPI.ShopCategoryCreate(strStoreID, catInfo.ParentEbaiID, catName, jxCatSeq2Ebai(catInfo.Seq))
|
||||||
|
if ebaiapi.IsErrCategoryExist(err) {
|
||||||
|
if catInfo.EbaiID = api.EbaiAPI.GetEbaiCatIDFromName(strStoreID, catName); catInfo.EbaiID > 0 {
|
||||||
|
err = nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
catInfo.EbaiID = jxutils.GenFakeID()
|
||||||
}
|
}
|
||||||
}
|
if err == nil {
|
||||||
} else if catInfo.EbaiSyncStatus&model.SyncFlagNewMask != 0 { // 新增
|
updateFields = append(updateFields, model.FieldEbaiID)
|
||||||
if globals.EnableEbaiStoreWrite {
|
}
|
||||||
catName := formatName(catInfo.Name)
|
} else if catInfo.EbaiSyncStatus&model.SyncFlagModifiedMask != 0 { // 修改
|
||||||
catInfo.EbaiID, err = api.EbaiAPI.ShopCategoryCreate(strStoreID, catInfo.ParentEbaiID, catName, jxCatSeq2Ebai(catInfo.Seq))
|
if globals.EnableEbaiStoreWrite {
|
||||||
if ebaiapi.IsErrCategoryExist(err) {
|
err = api.EbaiAPI.ShopCategoryUpdate(strStoreID, catInfo.EbaiID, formatName(catInfo.Name), jxCatSeq2Ebai(catInfo.Seq))
|
||||||
if catInfo.EbaiID = api.EbaiAPI.GetEbaiCatIDFromName(strStoreID, catName); catInfo.EbaiID > 0 {
|
|
||||||
err = nil
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
catInfo.EbaiID = jxutils.GenFakeID()
|
|
||||||
}
|
}
|
||||||
if err == nil {
|
if err == nil {
|
||||||
updateFields = append(updateFields, model.FieldEbaiID)
|
db2 := dao.GetDB()
|
||||||
|
catInfo.EbaiSyncStatus = 0
|
||||||
|
_, err = dao.UpdateEntity(db2, &catInfo.StoreSkuCategoryMap, updateFields...)
|
||||||
}
|
}
|
||||||
} else if catInfo.EbaiSyncStatus&model.SyncFlagModifiedMask != 0 { // 修改
|
return nil, err
|
||||||
if globals.EnableEbaiStoreWrite {
|
}, catList)
|
||||||
err = api.EbaiAPI.ShopCategoryUpdate(strStoreID, catInfo.EbaiID, formatName(catInfo.Name), jxCatSeq2Ebai(catInfo.Seq))
|
rootTask.AddChild(task).Run()
|
||||||
}
|
_, err = task.GetResult(0)
|
||||||
}
|
}
|
||||||
if err == nil {
|
|
||||||
db2 := dao.GetDB()
|
|
||||||
catInfo.EbaiSyncStatus = 0
|
|
||||||
_, err = dao.UpdateEntity(db2, &catInfo.StoreSkuCategoryMap, updateFields...)
|
|
||||||
}
|
|
||||||
return nil, err
|
|
||||||
}, catList)
|
|
||||||
rootTask.AddChild(task).Run()
|
|
||||||
_, err = task.GetResult(0)
|
|
||||||
}
|
}
|
||||||
return nil, err
|
return nil, err
|
||||||
}, 2)
|
}, 2)
|
||||||
|
|||||||
Reference in New Issue
Block a user