@@ -77,7 +77,6 @@ func SyncStoreCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo
rootTask := tasksch . NewSeqTask ( fmt . Sprintf ( "%s SyncStoreCategory step1" , model . VendorChineseNames [ vendorID ] ) , ctx ,
func ( rootTask * tasksch . SeqTask , step int , params ... interface { } ) ( result interface { } , err error ) {
level := step + 1
//todo 这里好像有点问题
catList , err := dao . GetDirtyStoreCategories ( db , vendorID , storeID , level , skuIDs )
if len ( catList ) > 0 {
num += len ( catList )
@@ -188,6 +187,7 @@ func SyncStoreSkuNew2(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFla
case 0 :
if singleStoreHandler != nil {
_ , err = SyncStoreCategories ( ctx , task , vendorID , storeID , vendorStoreID , nameIDs , skuIDs , false , isContinueWhenError )
globals . SugarLogger . Debug ( "SyncStoreCategories in SyncStoreSkuNew2 err on:%v" , err )
}
case 1 :
err = syncStoreSkuNew ( ctx , task , causeFlag , false , vendorID , storeID , vendorOrgCode , nameIDs , skuIDs , excludeSkuIDs , useVendorPriceDirectly , isContinueWhenError )
@@ -504,7 +504,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
var bareSku * partner . StoreSkuInfo
isNeedReorder := false
if isStoreSkuSyncNeedDelete ( sku ) {
globals . SugarLogger . Debug ( "1.进入isStoreSkuSyncNeedDelete" )
if ! dao . IsVendorThingIDEmpty ( sku . VendorSkuID ) {
bareSku = storeSkuSyncInfo2Bare ( sku )
if singleStoreHandler == nil {
@@ -513,16 +512,12 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
} else {
deleteList = append ( deleteList , bareSku )
}
globals . SugarLogger . Debug ( "2.stockList, deleteList==============" , stockList , deleteList )
} else {
updateItems = append ( updateItems , sku2Update ( vendorID , sku , model . SyncFlagDeletedMask ) )
globals . SugarLogger . Debug ( "3.updateItems==============" , updateItems )
}
} else if model . IsSyncStatusNew ( sku . SkuSyncStatus ) {
globals . SugarLogger . Debug ( "4.进入model.IsSyncStatusNew(sku.SkuSyncStatus)" )
calVendorPrice4StoreSku ( sku , storeDetail . PricePercentagePackObj , int ( storeDetail . PricePercentage ) )
if singleStoreHandler == nil {
globals . SugarLogger . Debug ( "5.进入singleStoreHandler == nil" )
if dao . IsVendorThingIDEmpty ( sku . VendorSkuID ) {
// todo 多平台商品库没有正常创建,直接跳过
} else {
@@ -535,11 +530,9 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
} else {
offlineList = append ( offlineList , bareSku )
}
globals . SugarLogger . Debug ( "6.stockList, priceList, onlineList||offlineList ==============" , stockList , priceList , onlineList , offlineList )
}
} else {
if sku . MergedStatus == model . SkuStatusNormal {
globals . SugarLogger . Debug ( "7.进入sku.MergedStatus == model.SkuStatusNormal" )
if vendorID == model . VendorIDDD {
createList = append ( createList , sku )
} else if dao . IsVendorThingIDEmpty ( sku . VendorCatID ) && ! strings . Contains ( sku . StoreName , model . ExdStoreName ) && vendorID != model . VendorIDYB && vendorID != model . VendorIDJDShop {
@@ -550,13 +543,10 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
createList = append ( createList , sku )
}
}
globals . SugarLogger . Debug ( "8.createList=======" , createList )
}
isNeedReorder = true
} else {
globals . SugarLogger . Debug ( "9.进入not isStoreSkuSyncNeedDelete IsSyncStatusNew" )
if dao . IsVendorThingIDEmpty ( sku . VendorSkuID ) && vendorID != model . VendorIDJDShop {
globals . SugarLogger . Debug ( "10.进入vendorID != model.VendorIDJDShop" )
// err = fmt.Errorf("门店:%d, 修改没有创建的商品:%d", storeID, sku.SkuID)
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 )
@@ -567,9 +557,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
parentTask . AddBatchErr ( err )
parentTask . AddFailedList ( failedList )
}
globals . SugarLogger . Debug ( "11.failedList======" , failedList )
} else {
globals . SugarLogger . Debug ( "12.进入vendorID == model.VendorIDJDShop" )
isAdded2Update := false
// 修改商品信息时不改价(以免活动引起的失败),而用单独的改价来改
if ( model . IsSyncStatusUpdate ( sku . SkuSyncStatus ) || ( model . IsSyncStatusSeq ( sku . SkuSyncStatus ) && reorderHandler == nil ) ) && singleStoreHandler != nil {
@@ -579,15 +567,12 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
isAdded2Update = true
updateList = append ( updateList , calVendorPrice4StoreSku ( sku , storeDetail . PricePercentagePackObj , int ( storeDetail . PricePercentage ) ) )
}
globals . SugarLogger . Debug ( "13.updateList================" , updateList )
}
if model . IsSyncStatusPrice ( sku . SkuSyncStatus ) {
bareSku = storeSkuSyncInfo2Bare ( calVendorPrice4StoreSku ( sku , storeDetail . PricePercentagePackObj , int ( storeDetail . PricePercentage ) ) )
priceList = append ( priceList , bareSku )
globals . SugarLogger . Debug ( "14. priceList=====================" , priceList )
}
if ! isAdded2Update {
globals . SugarLogger . Debug ( "15.进入!isAdded2Update" )
if model . IsSyncStatusUpdate ( sku . SkuSyncStatus ) && singleStoreHandler == nil { // 正常就不应该进到这里
// if bareSku == nil {
// bareSku = storeSkuSyncInfo2Bare(sku)
@@ -608,7 +593,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
// stockList = append(stockList, bareSku)
// }
}
globals . SugarLogger . Debug ( "16.onlineList, stockList, offlineList===========" , onlineList , stockList , offlineList )
}
//if model.IsSyncStatusStock(sku.SkuSyncStatus) {
// if bareSku == nil {
@@ -696,7 +680,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
task := tasksch . NewParallelTask ( "syncStoreSkuNew" , tasksch . NewParallelConfig ( ) . SetParallelCount ( 1 ) . SetIsContinueWhenError ( isContinueWhenError2 ) , ctx ,
func ( task * tasksch . ParallelTask , batchItemList [ ] interface { } , params ... interface { } ) ( retVal interface { } , err error ) {
step := batchItemList [ 0 ] . ( int )
globals . SugarLogger . Debugf ( "17.deleteList,createList,updateList,stockList===============" , deleteList , createList , updateList , stockList )
switch step {
case 0 :
if len ( deleteList ) > 0 {
@@ -728,7 +711,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
var failedList [ ] * partner . StoreSkuInfoWithErr
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 {
& partner . StoreSkuInfo {
@@ -744,13 +726,10 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
err = nil
failedList = nil // 因为batchSize为1, 可以这样处理
} 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 ] , "查询是否有该商品" ) ... )
}
globals . SugarLogger . Debug ( "33.updateList|| failedList=============" , updateList , failedList )
}
failedList , err = buildFailedListAndErr ( failedList , err , nil , batchedStoreSkuList , storeID , vendorID , "创建门店商品" )
globals . SugarLogger . Debug ( "18.updateList,failedList=========================" , updateList , failedList )
if len ( failedList ) > 0 {
task . AddFailedList ( failedList )
}
@@ -766,7 +745,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
}
successList := putils . UnselectStoreSkuSyncListByVendorSkuIDs ( batchedStoreSkuList , GetVendorSkuIDList ( failedList ) )
if len ( successList ) > 0 {
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 )
@@ -784,24 +762,13 @@ 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 ) {
var failedList [ ] * partner . StoreSkuInfoWithErr
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 , "更新门店商品基础信息" )
if err != nil {
globals . SugarLogger . Debugf ( "22.sth wrong on buildFailedListAndErr: %v" , err )
}
if len ( failedList ) > 0 {
task . AddFailedList ( failedList )
}
successList := putils . UnselectStoreSkuSyncListByVendorSkuIDs ( batchedStoreSkuList , GetVendorSkuIDList ( failedList ) )
globals . SugarLogger . Debug ( "23.failedList, successList============" , failedList , successList )
if len ( successList ) > 0 {
_ , 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
}
_ , err = updateStoreSku ( dao . GetDB ( ) , vendorID , successList , model . SyncFlagModifiedMask )
}
return nil , len ( successList ) , err
} , ctx , task , updateList , singleStoreHandler . GetStoreSkusBatchSize ( partner . FuncUpdateStoreSkus ) , isContinueWhenError2 )
@@ -812,7 +779,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
_ , err = putils . FreeBatchStoreSkuInfo ( "更新门店商品库存" , func ( task tasksch . ITask , batchedStoreSkuList [ ] * partner . StoreSkuInfo ) ( result interface { } , successCount int , err error ) {
var failedList [ ] * partner . StoreSkuInfoWithErr
failedList , err = storeSkuHandler . UpdateStoreSkusStock ( ctx , storeDetail . VendorOrgCode , storeID , vendorStoreID , batchedStoreSkuList )
globals . SugarLogger . Debugf ( "failedList===========%s" , utils . Format4Output ( failedList , true ) )
failedList , err = buildFailedListAndErr ( failedList , err , batchedStoreSkuList , nil , storeID , vendorID , "更新门店商品库存" )
if len ( failedList ) > 0 {
task . AddFailedList ( failedList )
@@ -851,7 +817,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
}
case 6 :
if len ( priceList ) > 0 {
globals . SugarLogger . Debugf ( "================更新门店商品价格%s" , utils . Format4Output ( priceList , true ) )
_ , err = putils . FreeBatchStoreSkuInfo ( "更新门店商品价格" , func ( task tasksch . ITask , batchedStoreSkuList [ ] * partner . StoreSkuInfo ) ( result interface { } , successCount int , err error ) {
if isNeedHandleAct ( causeFlag ) {
cancelStoreSkuActs ( ctx , task , vendorID , storeDetail . VendorOrgCode , storeID , vendorStoreID , batchedStoreSkuList , true )
@@ -878,7 +843,6 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag
for vendorCatID := range reorderSkuMap {
vendorCatIDs = append ( vendorCatIDs , vendorCatID )
}
globals . SugarLogger . Debugf ( "================门店商品排序%s" , utils . Format4Output ( reorderSkuMap , true ) )
reorderTask := tasksch . NewParallelTask ( "门店商品排序" , tasksch . NewParallelConfig ( ) . SetIsContinueWhenError ( isContinueWhenError2 ) , ctx ,
func ( task * tasksch . ParallelTask , batchItemList [ ] interface { } , params ... interface { } ) ( retVal interface { } , err error ) {
vendorCatID := batchItemList [ 0 ] . ( string )