From 3d41d6d340632573b8f814e54f3fdc3edcf55778 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 26 Nov 2020 17:13:18 +0800 Subject: [PATCH] try --- business/jxstore/cms/sync_store_sku.go | 82 +++++++++++++------------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index d61b30727..8ac8e1a02 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -692,48 +692,48 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag if len(successList) > 0 { updateStoreSku(dao.GetDB(), vendorID, successList, model.SyncFlagNewMask) } + } else { + _, err = putils.FreeBatchStoreSkuSyncInfo("创建门店商品", func(task tasksch.ITask, batchedStoreSkuList []*dao.StoreSkuSyncInfo) (result interface{}, successCount int, err error) { + var failedList []*partner.StoreSkuInfoWithErr + if failedList, err = singleStoreHandler.CreateStoreSkus(ctx, storeID, vendorStoreID, batchedStoreSkuList); singleStoreHandler.IsErrSkuExist(err) { + if skuNameList, err2 := singleStoreHandler.GetStoreSkusFullInfo(ctx, task, storeID, vendorStoreID, []*partner.StoreSkuInfo{ + &partner.StoreSkuInfo{ + SkuID: batchedStoreSkuList[0].SkuID, + VendorSkuID: batchedStoreSkuList[0].VendorSkuID, + }, + }); err2 == nil && len(skuNameList) > 0 { + batchedStoreSkuList[0].VendorNameID = skuNameList[0].VendorNameID + batchedStoreSkuList[0].VendorSkuID = skuNameList[0].SkuList[0].VendorSkuID + + // 如果创建商品时已经存在,需要更新 + updateList = append(updateList, calVendorPrice4StoreSku(batchedStoreSkuList[0], storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage))) + err = nil + failedList = nil // 因为batchSize为1,可以这样处理 + } else if err2 != nil { + failedList = append(failedList, putils.GetErrMsg2FailedSingleList(batchedStoreSkuList, err2, storeID, model.VendorChineseNames[vendorID], "查询是否有该商品")...) + } + } + failedList, err = buildFailedListAndErr(failedList, err, nil, batchedStoreSkuList, storeID, vendorID, "创建门店商品") + if len(failedList) > 0 { + task.AddFailedList(failedList) + } + if err != nil { + //handle error for sensitive words, if find, then insert to table sensitive_words + if sensitiveWord := GetSensitiveWord(singleStoreHandler, err.Error()); sensitiveWord != "" { + dao.InsertSensitiveWord(sensitiveWord, vendorID, ctx.GetUserName()) + // words, _ := dao.GetSensitiveWordList(vendorID) + // word := words[0] + // word.Word = word.Word + "," + sensitiveWord + // dao.UpdateSensitiveWord(word, vendorID, 0, ctx.GetUserName()) + } + } + successList := putils.UnselectStoreSkuSyncListByVendorSkuIDs(batchedStoreSkuList, GetVendorSkuIDList(failedList)) + if len(successList) > 0 { + updateStoreSku(dao.GetDB(), vendorID, successList, model.SyncFlagNewMask) + } + return nil, len(successList), err + }, ctx, task, createList, 1 /*singleStoreHandler.GetStoreSkusBatchSize(partner.FuncCreateStoreSkus)*/, isContinueWhenError2) } - - _, err = putils.FreeBatchStoreSkuSyncInfo("创建门店商品", func(task tasksch.ITask, batchedStoreSkuList []*dao.StoreSkuSyncInfo) (result interface{}, successCount int, err error) { - var failedList []*partner.StoreSkuInfoWithErr - if failedList, err = singleStoreHandler.CreateStoreSkus(ctx, storeID, vendorStoreID, batchedStoreSkuList); singleStoreHandler.IsErrSkuExist(err) { - if skuNameList, err2 := singleStoreHandler.GetStoreSkusFullInfo(ctx, task, storeID, vendorStoreID, []*partner.StoreSkuInfo{ - &partner.StoreSkuInfo{ - SkuID: batchedStoreSkuList[0].SkuID, - VendorSkuID: batchedStoreSkuList[0].VendorSkuID, - }, - }); err2 == nil && len(skuNameList) > 0 { - batchedStoreSkuList[0].VendorNameID = skuNameList[0].VendorNameID - batchedStoreSkuList[0].VendorSkuID = skuNameList[0].SkuList[0].VendorSkuID - - // 如果创建商品时已经存在,需要更新 - updateList = append(updateList, calVendorPrice4StoreSku(batchedStoreSkuList[0], storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage))) - err = nil - failedList = nil // 因为batchSize为1,可以这样处理 - } else if err2 != nil { - failedList = append(failedList, putils.GetErrMsg2FailedSingleList(batchedStoreSkuList, err2, storeID, model.VendorChineseNames[vendorID], "查询是否有该商品")...) - } - } - failedList, err = buildFailedListAndErr(failedList, err, nil, batchedStoreSkuList, storeID, vendorID, "创建门店商品") - if len(failedList) > 0 { - task.AddFailedList(failedList) - } - if err != nil { - //handle error for sensitive words, if find, then insert to table sensitive_words - if sensitiveWord := GetSensitiveWord(singleStoreHandler, err.Error()); sensitiveWord != "" { - dao.InsertSensitiveWord(sensitiveWord, vendorID, ctx.GetUserName()) - // words, _ := dao.GetSensitiveWordList(vendorID) - // word := words[0] - // word.Word = word.Word + "," + sensitiveWord - // dao.UpdateSensitiveWord(word, vendorID, 0, ctx.GetUserName()) - } - } - successList := putils.UnselectStoreSkuSyncListByVendorSkuIDs(batchedStoreSkuList, GetVendorSkuIDList(failedList)) - if len(successList) > 0 { - updateStoreSku(dao.GetDB(), vendorID, successList, model.SyncFlagNewMask) - } - return nil, len(successList), err - }, ctx, task, createList, 1 /*singleStoreHandler.GetStoreSkusBatchSize(partner.FuncCreateStoreSkus)*/, isContinueWhenError2) } case 2: if len(updateList) > 0 {