Merge branch 'jdshop' of e.coding.net:rosydev/jx-callback into jdshop

This commit is contained in:
邹宗楠
2022-10-20 11:51:05 +08:00
2 changed files with 43 additions and 16 deletions

View File

@@ -503,7 +503,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
var bareSku *partner.StoreSkuInfo var bareSku *partner.StoreSkuInfo
isNeedReorder := false isNeedReorder := false
if isStoreSkuSyncNeedDelete(sku) { if isStoreSkuSyncNeedDelete(sku) {
globals.SugarLogger.Debug("11111111111111111111111") globals.SugarLogger.Debug("1.进入isStoreSkuSyncNeedDelete")
if !dao.IsVendorThingIDEmpty(sku.VendorSkuID) { if !dao.IsVendorThingIDEmpty(sku.VendorSkuID) {
bareSku = storeSkuSyncInfo2Bare(sku) bareSku = storeSkuSyncInfo2Bare(sku)
if singleStoreHandler == nil { if singleStoreHandler == nil {
@@ -512,14 +512,16 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
} else { } else {
deleteList = append(deleteList, bareSku) deleteList = append(deleteList, bareSku)
} }
globals.SugarLogger.Debug("2.stockListdeleteList==============", stockList, deleteList)
} else { } else {
updateItems = append(updateItems, sku2Update(vendorID, sku, model.SyncFlagDeletedMask)) updateItems = append(updateItems, sku2Update(vendorID, sku, model.SyncFlagDeletedMask))
globals.SugarLogger.Debug("3.updateItems==============", updateItems)
} }
} else if model.IsSyncStatusNew(sku.SkuSyncStatus) { } else if model.IsSyncStatusNew(sku.SkuSyncStatus) {
globals.SugarLogger.Debug("222222222222222") globals.SugarLogger.Debug("4.进入model.IsSyncStatusNew(sku.SkuSyncStatus)")
calVendorPrice4StoreSku(sku, storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage)) calVendorPrice4StoreSku(sku, storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage))
if singleStoreHandler == nil { if singleStoreHandler == nil {
globals.SugarLogger.Debug("11111111111111111111111") globals.SugarLogger.Debug("5.进入singleStoreHandler == nil")
if dao.IsVendorThingIDEmpty(sku.VendorSkuID) { if dao.IsVendorThingIDEmpty(sku.VendorSkuID) {
// todo 多平台商品库没有正常创建,直接跳过 // todo 多平台商品库没有正常创建,直接跳过
} else { } else {
@@ -532,10 +534,11 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
} else { } else {
offlineList = append(offlineList, bareSku) offlineList = append(offlineList, bareSku)
} }
globals.SugarLogger.Debug("6.stockListpriceListonlineList||offlineList ==============", stockList, priceList, onlineList, offlineList)
} }
} else { } else {
globals.SugarLogger.Debug("2222222222222223333333333333333")
if sku.MergedStatus == model.SkuStatusNormal { if sku.MergedStatus == model.SkuStatusNormal {
globals.SugarLogger.Debug("7.进入sku.MergedStatus == model.SkuStatusNormal")
if vendorID == model.VendorIDDD { if vendorID == model.VendorIDDD {
createList = append(createList, sku) createList = append(createList, sku)
} else if dao.IsVendorThingIDEmpty(sku.VendorCatID) && !strings.Contains(sku.StoreName, model.ExdStoreName) && vendorID != model.VendorIDYB && vendorID != model.VendorIDJDShop { } else if dao.IsVendorThingIDEmpty(sku.VendorCatID) && !strings.Contains(sku.StoreName, model.ExdStoreName) && vendorID != model.VendorIDYB && vendorID != model.VendorIDJDShop {
@@ -546,13 +549,13 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
createList = append(createList, sku) createList = append(createList, sku)
} }
} }
globals.SugarLogger.Debug("8.createList=======", createList)
} }
isNeedReorder = true isNeedReorder = true
} else { } else {
globals.SugarLogger.Debug("33333333333333333333333") globals.SugarLogger.Debug("9.进入not isStoreSkuSyncNeedDelete IsSyncStatusNew")
if dao.IsVendorThingIDEmpty(sku.VendorSkuID) && vendorID != model.VendorIDJDShop { if dao.IsVendorThingIDEmpty(sku.VendorSkuID) && vendorID != model.VendorIDJDShop {
globals.SugarLogger.Debug("3333333333333333333333344444444444444") globals.SugarLogger.Debug("10.进入vendorID != model.VendorIDJDShop")
// err = fmt.Errorf("门店:%d修改没有创建的商品:%d", storeID, sku.SkuID) // err = fmt.Errorf("门店:%d修改没有创建的商品:%d", storeID, sku.SkuID)
if vendorID != model.VendorIDJDShop || (vendorID == model.VendorIDJDShop && storeID == model.JdShopMainStoreID && sku.StoreSkuStatus != model.SkuStatusDontSale) { if vendorID != model.VendorIDJDShop || (vendorID == model.VendorIDJDShop && storeID == model.JdShopMainStoreID && sku.StoreSkuStatus != model.SkuStatusDontSale) {
err = utils.NewErrorCode(fmt.Sprintf("门店:%d修改没有创建的商品:%d", storeID, sku.SkuID), "-1", 0) err = utils.NewErrorCode(fmt.Sprintf("门店:%d修改没有创建的商品:%d", storeID, sku.SkuID), "-1", 0)
@@ -563,9 +566,9 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
parentTask.AddBatchErr(err) parentTask.AddBatchErr(err)
parentTask.AddFailedList(failedList) parentTask.AddFailedList(failedList)
} }
globals.SugarLogger.Debug("11.failedList======", failedList)
} else { } else {
globals.SugarLogger.Debug("3333333333333333333333355555555555") globals.SugarLogger.Debug("12.进入vendorID == model.VendorIDJDShop")
isAdded2Update := false isAdded2Update := false
// 修改商品信息时不改价(以免活动引起的失败),而用单独的改价来改 // 修改商品信息时不改价(以免活动引起的失败),而用单独的改价来改
if (model.IsSyncStatusUpdate(sku.SkuSyncStatus) || (model.IsSyncStatusSeq(sku.SkuSyncStatus) && reorderHandler == nil)) && singleStoreHandler != nil { if (model.IsSyncStatusUpdate(sku.SkuSyncStatus) || (model.IsSyncStatusSeq(sku.SkuSyncStatus) && reorderHandler == nil)) && singleStoreHandler != nil {
@@ -575,14 +578,15 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
isAdded2Update = true isAdded2Update = true
updateList = append(updateList, calVendorPrice4StoreSku(sku, storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage))) updateList = append(updateList, calVendorPrice4StoreSku(sku, storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage)))
} }
globals.SugarLogger.Debug("13.updateList================", updateList)
} }
if model.IsSyncStatusPrice(sku.SkuSyncStatus) { if model.IsSyncStatusPrice(sku.SkuSyncStatus) {
bareSku = storeSkuSyncInfo2Bare(calVendorPrice4StoreSku(sku, storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage))) bareSku = storeSkuSyncInfo2Bare(calVendorPrice4StoreSku(sku, storeDetail.PricePercentagePackObj, int(storeDetail.PricePercentage)))
priceList = append(priceList, bareSku) priceList = append(priceList, bareSku)
globals.SugarLogger.Debug("14. priceList=====================", priceList)
} }
if !isAdded2Update { if !isAdded2Update {
globals.SugarLogger.Debug("333333333333333333333335555555555566666666666666666") globals.SugarLogger.Debug("15.进入!isAdded2Update")
if model.IsSyncStatusUpdate(sku.SkuSyncStatus) && singleStoreHandler == nil { // 正常就不应该进到这里 if model.IsSyncStatusUpdate(sku.SkuSyncStatus) && singleStoreHandler == nil { // 正常就不应该进到这里
// if bareSku == nil { // if bareSku == nil {
// bareSku = storeSkuSyncInfo2Bare(sku) // bareSku = storeSkuSyncInfo2Bare(sku)
@@ -603,6 +607,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
// stockList = append(stockList, bareSku) // stockList = append(stockList, bareSku)
// } // }
} }
globals.SugarLogger.Debug("16.onlineListstockListofflineList===========", onlineList, stockList, offlineList)
} }
//if model.IsSyncStatusStock(sku.SkuSyncStatus) { //if model.IsSyncStatusStock(sku.SkuSyncStatus) {
// if bareSku == nil { // if bareSku == nil {
@@ -690,7 +695,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
task := tasksch.NewParallelTask("syncStoreSkuNew", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError2), ctx, task := tasksch.NewParallelTask("syncStoreSkuNew", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError2), ctx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
step := batchItemList[0].(int) step := batchItemList[0].(int)
// globals.SugarLogger.Debugf("step:%d", step) globals.SugarLogger.Debugf("17.deleteList,createList,updateList,stockList===============", deleteList, createList, updateList, stockList)
switch step { switch step {
case 0: case 0:
if len(deleteList) > 0 { if len(deleteList) > 0 {
@@ -721,6 +726,9 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
_, err = putils.FreeBatchStoreSkuSyncInfo("创建门店商品", func(task tasksch.ITask, batchedStoreSkuList []*dao.StoreSkuSyncInfo) (result interface{}, successCount int, err error) { _, err = putils.FreeBatchStoreSkuSyncInfo("创建门店商品", func(task tasksch.ITask, batchedStoreSkuList []*dao.StoreSkuSyncInfo) (result interface{}, successCount int, err error) {
var failedList []*partner.StoreSkuInfoWithErr var failedList []*partner.StoreSkuInfoWithErr
if failedList, err = singleStoreHandler.CreateStoreSkus(ctx, storeID, vendorStoreID, batchedStoreSkuList); singleStoreHandler.IsErrSkuExist(err) { if failedList, err = singleStoreHandler.CreateStoreSkus(ctx, storeID, vendorStoreID, batchedStoreSkuList); singleStoreHandler.IsErrSkuExist(err) {
if err != nil {
globals.SugarLogger.Debug("30.sth wrong on singleStoreHandler.CreateStoreSkus: %v", err)
}
if skuNameList, err2 := singleStoreHandler.GetStoreSkusFullInfo(ctx, task, storeID, vendorStoreID, []*partner.StoreSkuInfo{ if skuNameList, err2 := singleStoreHandler.GetStoreSkusFullInfo(ctx, task, storeID, vendorStoreID, []*partner.StoreSkuInfo{
&partner.StoreSkuInfo{ &partner.StoreSkuInfo{
SkuID: batchedStoreSkuList[0].SkuID, SkuID: batchedStoreSkuList[0].SkuID,
@@ -735,10 +743,13 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
err = nil err = nil
failedList = nil // 因为batchSize为1可以这样处理 failedList = nil // 因为batchSize为1可以这样处理
} else if err2 != nil { } else if err2 != nil {
globals.SugarLogger.Debug("31.sth wrong on err2: %v", err2)
failedList = append(failedList, putils.GetErrMsg2FailedSingleList(batchedStoreSkuList, err2, storeID, model.VendorChineseNames[vendorID], "查询是否有该商品")...) failedList = append(failedList, putils.GetErrMsg2FailedSingleList(batchedStoreSkuList, err2, storeID, model.VendorChineseNames[vendorID], "查询是否有该商品")...)
} }
globals.SugarLogger.Debug("33.updateList|| failedList=============", updateList, failedList)
} }
failedList, err = buildFailedListAndErr(failedList, err, nil, batchedStoreSkuList, storeID, vendorID, "创建门店商品") failedList, err = buildFailedListAndErr(failedList, err, nil, batchedStoreSkuList, storeID, vendorID, "创建门店商品")
globals.SugarLogger.Debug("18.updateList,failedList=========================", updateList, failedList)
if len(failedList) > 0 { if len(failedList) > 0 {
task.AddFailedList(failedList) task.AddFailedList(failedList)
} }
@@ -754,7 +765,12 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
} }
successList := putils.UnselectStoreSkuSyncListByVendorSkuIDs(batchedStoreSkuList, GetVendorSkuIDList(failedList)) successList := putils.UnselectStoreSkuSyncListByVendorSkuIDs(batchedStoreSkuList, GetVendorSkuIDList(failedList))
if len(successList) > 0 { if len(successList) > 0 {
updateStoreSku(dao.GetDB(), vendorID, successList, model.SyncFlagNewMask) globals.SugarLogger.Debug("19.len(successList) > 0 ,successList=========", successList)
_, err := updateStoreSku(dao.GetDB(), vendorID, successList, model.SyncFlagNewMask)
if err != nil {
globals.SugarLogger.Debugf("20.sth wrong on updateStoreSku: %v", err)
//return nil, 0, err
}
} }
return nil, len(successList), err return nil, len(successList), err
}, ctx, task, createList, 1, isContinueWhenError2) }, ctx, task, createList, 1, isContinueWhenError2)
@@ -767,13 +783,24 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
_, err = putils.FreeBatchStoreSkuSyncInfo("更新门店商品基础信息", func(task tasksch.ITask, batchedStoreSkuList []*dao.StoreSkuSyncInfo) (result interface{}, successCount int, err error) { _, err = putils.FreeBatchStoreSkuSyncInfo("更新门店商品基础信息", func(task tasksch.ITask, batchedStoreSkuList []*dao.StoreSkuSyncInfo) (result interface{}, successCount int, err error) {
var failedList []*partner.StoreSkuInfoWithErr var failedList []*partner.StoreSkuInfoWithErr
failedList, err = singleStoreHandler.UpdateStoreSkus(ctx, storeID, vendorStoreID, batchedStoreSkuList) failedList, err = singleStoreHandler.UpdateStoreSkus(ctx, storeID, vendorStoreID, batchedStoreSkuList)
if err != nil {
globals.SugarLogger.Debugf("21.sth wrong on singleStoreHandler.UpdateStoreSkus: %v", err)
}
failedList, err = buildFailedListAndErr(failedList, err, nil, batchedStoreSkuList, storeID, vendorID, "更新门店商品基础信息") failedList, err = buildFailedListAndErr(failedList, err, nil, batchedStoreSkuList, storeID, vendorID, "更新门店商品基础信息")
if err != nil {
globals.SugarLogger.Debugf("22.sth wrong on buildFailedListAndErr: %v", err)
}
if len(failedList) > 0 { if len(failedList) > 0 {
task.AddFailedList(failedList) task.AddFailedList(failedList)
} }
successList := putils.UnselectStoreSkuSyncListByVendorSkuIDs(batchedStoreSkuList, GetVendorSkuIDList(failedList)) successList := putils.UnselectStoreSkuSyncListByVendorSkuIDs(batchedStoreSkuList, GetVendorSkuIDList(failedList))
globals.SugarLogger.Debug("23.failedListsuccessList============", failedList, successList)
if len(successList) > 0 { if len(successList) > 0 {
updateStoreSku(dao.GetDB(), vendorID, successList, model.SyncFlagModifiedMask) _, err := updateStoreSku(dao.GetDB(), vendorID, successList, model.SyncFlagModifiedMask)
if err != nil {
globals.SugarLogger.Debugf("24.sth wrong on updateStoreSku: %v", err)
//return nil, 0, err
}
} }
return nil, len(successList), err return nil, len(successList), err
}, ctx, task, updateList, singleStoreHandler.GetStoreSkusBatchSize(partner.FuncUpdateStoreSkus), isContinueWhenError2) }, ctx, task, updateList, singleStoreHandler.GetStoreSkusBatchSize(partner.FuncUpdateStoreSkus), isContinueWhenError2)

View File

@@ -262,7 +262,7 @@ func (P *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin
if storeInfo.SyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreStatus) != 0 { if storeInfo.SyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreStatus) != 0 {
errList.AddErr(P.UpdateStoreStatus(jxcontext.AdminCtx, storeInfo.VendorOrgCode, storeID, storeInfo.VendorStoreID, mergedStoreStatus)) errList.AddErr(P.UpdateStoreStatus(jxcontext.AdminCtx, storeInfo.VendorOrgCode, storeID, storeInfo.VendorStoreID, mergedStoreStatus))
} }
_, err3 := api.EditStore(params) err3 := api.EditStore(params)
if err3 != nil { if err3 != nil {
errList.AddErr(err3) errList.AddErr(err3)
} else { } else {
@@ -584,7 +584,7 @@ func (P *PurchaseHandler) UpdateStoreOpTime(ctx *jxcontext.Context, vendorOrgCod
}, },
} }
if globals.EnableDdStoreWrite { if globals.EnableDdStoreWrite {
_, err = getAPI(vendorOrgCode, storeID, vendorStoreID).EditStore(params) err = getAPI(vendorOrgCode, storeID, vendorStoreID).EditStore(params)
} }
return err return err
} }