diff --git a/business/jxstore/cms/sync2.go b/business/jxstore/cms/sync2.go index 68b1a8707..260b32ad9 100644 --- a/business/jxstore/cms/sync2.go +++ b/business/jxstore/cms/sync2.go @@ -39,10 +39,10 @@ func getMultiStoreVendorInfoList() (list []*MultiStoreVendorInfo) { return list } -func syncCategories(ctx *jxcontext.Context, db *dao.DaoDB, parentTask tasksch.ITask, vendorIDs []int, appOrgCodes []string, catList []*dao.SkuStoreCatInfo, isAsync bool) (hint string, err error) { +func syncCategories(ctx *jxcontext.Context, db *dao.DaoDB, parentTask tasksch.ITask, catList []*dao.SkuStoreCatInfo, isAsync bool) (hint string, err error) { if len(catList) > 0 { // todo 按vendorID orgCode合并操作 - task := tasksch.NewParallelTask(fmt.Sprintf("同步分类2:%v", appOrgCodes), tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, + task := tasksch.NewParallelTask(fmt.Sprintf("同步分类2:%D", len(catList)), tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { catVendorInfo := batchItemList[0].(*dao.SkuStoreCatInfo) if catVendorInfo.Level != 1 && catVendorInfo.ParentVendorCatID == "" { @@ -83,7 +83,7 @@ func syncCategories(ctx *jxcontext.Context, db *dao.DaoDB, parentTask tasksch.IT func SyncCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorIDs []int, appOrgCodes []string, catIDs []int, isAsync bool) (hint string, err error) { globals.SugarLogger.Debugf("SyncCategories catIDs:%v", catIDs) db := dao.GetDB() - catList, err := dao.GetSkuCategoryWithVendor(db, nil, nil, -1, catIDs, true) + catList, err := dao.GetSkuCategoryWithVendor(db, vendorIDs, appOrgCodes, -1, catIDs, true) if err == nil && len(catList) > 0 { var needSyncParentIDs []int for _, cat := range catList { @@ -96,14 +96,14 @@ func SyncCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorIDs func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) { switch step { case 0: - catList2, err := dao.GetSkuCategoryWithVendor(db, nil, nil, -1, needSyncParentIDs, true) + catList2, err := dao.GetSkuCategoryWithVendor(db, vendorIDs, appOrgCodes, -1, needSyncParentIDs, true) if err == nil { - _, err = syncCategories(ctx, db, task, vendorIDs, appOrgCodes, catList2, false) + _, err = syncCategories(ctx, db, task, catList2, false) } case 1: - catList2, err := dao.GetSkuCategoryWithVendor(db, nil, nil, -1, catIDs, true) + catList2, err := dao.GetSkuCategoryWithVendor(db, vendorIDs, appOrgCodes, -1, catIDs, true) if err == nil { - _, err = syncCategories(ctx, db, task, vendorIDs, appOrgCodes, catList2, false) + _, err = syncCategories(ctx, db, task, catList2, false) } } return result, err @@ -118,7 +118,7 @@ func SyncCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorIDs } } } else { - hint, err = syncCategories(ctx, db, parentTask, vendorIDs, appOrgCodes, catList, false) + hint, err = syncCategories(ctx, db, parentTask, catList, false) } } return hint, err @@ -127,7 +127,7 @@ func SyncCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorIDs func SyncSkus(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorIDs []int, appOrgCodes []string, nameIDs, skuIDs []int, isAsync bool) (hint string, err error) { globals.SugarLogger.Debugf("SyncSkus nameIDs:%v, skuIDs:%v", nameIDs, skuIDs) db := dao.GetDB() - skuList, err := dao.GetSkusWithVendor(db, nil, nil, nameIDs, skuIDs, true) + skuList, err := dao.GetSkusWithVendor(db, vendorIDs, appOrgCodes, nameIDs, skuIDs, true) if err == nil && len(skuList) > 0 { // todo 按vendorID orgCode合并操作 task := tasksch.NewParallelTask(fmt.Sprintf("同步商品:%v,%v", nameIDs, skuIDs), tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, @@ -136,6 +136,9 @@ func SyncSkus(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorIDs []int, if skuVendorInfo.VendorCatID == "" { return nil, fmt.Errorf("商品:%d的商家分类没有同步", skuVendorInfo.SkuID) } + if skuVendorInfo.BindID == 0 { + return nil, fmt.Errorf("商品:%d的数据异常", skuVendorInfo.SkuID) + } skuVendorInfo.SkuName = jxutils.ComposeSkuName(skuVendorInfo.Prefix, skuVendorInfo.Name, skuVendorInfo.Comment, skuVendorInfo.Unit, skuVendorInfo.SpecQuality, skuVendorInfo.SpecUnit, 0) skuVendorInfo.MergedStatus = jxutils.MergeSkuStatus(skuVendorInfo.Status, skuVendorInfo.NameStatus) if multiStoresHandler, ok := partner.GetPurchasePlatformFromVendorID(skuVendorInfo.VendorID).(partner.IMultipleStoresHandler); ok {