try
This commit is contained in:
@@ -680,60 +680,46 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
|
||||
}
|
||||
case 1:
|
||||
if len(createList) > 0 {
|
||||
//jds2创商品太快了。。
|
||||
if vendorID == model.VendorIDJDShop && storeID == model.JdShopMainStoreID2 {
|
||||
_, err = putils.FreeBatchStoreSkuSyncInfo("创建门店商品", func(task tasksch.ITask, batchedStoreSkuList []*dao.StoreSkuSyncInfo) (result interface{}, successCount int, err error) {
|
||||
var failedList []*partner.StoreSkuInfoWithErr
|
||||
failedList, err = singleStoreHandler.CreateStoreSkus(ctx, storeID, vendorStoreID, createList)
|
||||
failedList, err = buildFailedListAndErr(failedList, err, nil, createList, storeID, vendorID, "创建门店商品")
|
||||
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)
|
||||
}
|
||||
successList := putils.UnselectStoreSkuSyncListByVendorSkuIDs(createList, GetVendorSkuIDList(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)
|
||||
}
|
||||
} 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)
|
||||
}
|
||||
return nil, len(successList), err
|
||||
}, ctx, task, createList, 1 /*singleStoreHandler.GetStoreSkusBatchSize(partner.FuncCreateStoreSkus)*/, isContinueWhenError2)
|
||||
}
|
||||
case 2:
|
||||
if len(updateList) > 0 {
|
||||
|
||||
@@ -43,8 +43,8 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v
|
||||
flag2 := false
|
||||
result, err := getAPI(v.VendorOrgCode).SearchWare4Valid(name, 1, 100)
|
||||
if err != nil {
|
||||
failedList = append(failedList, putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")...)
|
||||
continue
|
||||
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
|
||||
return failedList, err
|
||||
}
|
||||
for _, v := range result.Data {
|
||||
if v.Title == name {
|
||||
@@ -117,14 +117,14 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v
|
||||
updateSkusParam, wareSaveSku, err := buildUpdateSkusParam(v, vv, true)
|
||||
wareSaveSkus = append(wareSaveSkus, wareSaveSku)
|
||||
if err != nil {
|
||||
failedList = append(failedList, putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")...)
|
||||
continue
|
||||
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
|
||||
return failedList, err
|
||||
}
|
||||
if v.VendorOrgCode == "1" {
|
||||
vendorSkuID, err := getAPI(v.VendorOrgCode).UpdateSkus(updateSkusParam)
|
||||
if err != nil {
|
||||
failedList = append(failedList, putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")...)
|
||||
continue
|
||||
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
|
||||
return failedList, err
|
||||
}
|
||||
vv.VendorSkuID = vendorSkuID
|
||||
} else {
|
||||
@@ -144,8 +144,8 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v
|
||||
} else {
|
||||
createSkuParamWare, createSkuParamSkus, wareSaveParam, err := buildCreateWareParam(v)
|
||||
if err != nil {
|
||||
failedList = append(failedList, putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")...)
|
||||
continue
|
||||
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
|
||||
return failedList, err
|
||||
}
|
||||
var (
|
||||
wareID int64
|
||||
@@ -176,8 +176,14 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v
|
||||
}
|
||||
}
|
||||
} else {
|
||||
createSkuResult, err2 := api.JdShop2API.WareSave(wareSaveParam)
|
||||
err = err2
|
||||
var createSkuResult []*jdshopapi.WareSaveResult
|
||||
for {
|
||||
createSkuResult, err = api.JdShop2API.WareSave(wareSaveParam)
|
||||
if len(createSkuResult) > 0 {
|
||||
break
|
||||
}
|
||||
time.Sleep(time.Second / 2)
|
||||
}
|
||||
wareID = createSkuResult[0].WareID
|
||||
|
||||
var paramAttrs = make(map[string]*jdshopapi.WareSaveSkus)
|
||||
@@ -203,8 +209,8 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v
|
||||
err = api.JdShop2API.WareDoUpdate("up", utils.Int64ToStr(wareID))
|
||||
}
|
||||
if err != nil {
|
||||
failedList = append(failedList, putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")...)
|
||||
continue
|
||||
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
|
||||
return failedList, err
|
||||
} else {
|
||||
//追加商品透图
|
||||
imageURL := ""
|
||||
@@ -226,8 +232,8 @@ func (p *PurchaseHandler) CreateStoreSkus(ctx *jxcontext.Context, storeID int, v
|
||||
}
|
||||
}
|
||||
if err != nil {
|
||||
failedList = append(failedList, putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")...)
|
||||
continue
|
||||
failedList = putils.GetErrMsg2FailedSingleList(storeSkuList, err, storeID, model.VendorChineseNames[model.VendorIDJDShop], "创建商品")
|
||||
return failedList, err
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user