diff --git a/business/jxstore/cms/sync_store_sku.go b/business/jxstore/cms/sync_store_sku.go index c7e3a4395..fd172c8b9 100644 --- a/business/jxstore/cms/sync_store_sku.go +++ b/business/jxstore/cms/sync_store_sku.go @@ -352,7 +352,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, isFull bo successList = batchedStoreSkuList } if len(successList) > 0 { - _, err = updateStoreSku(dao.GetDB(), vendorID, bareSku2Sync(successList), model.SyncFlagDeletedMask) + updateStoreSku(dao.GetDB(), vendorID, bareSku2Sync(successList), model.SyncFlagDeletedMask) } return nil, err }, ctx, task, deleteList, 1 /*singleStoreHandler.GetStoreSkusBatchSize(partner.FuncDeleteStoreSkus)*/, isContinueWhenError) @@ -376,7 +376,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, isFull bo successList = batchedStoreSkuList } if len(successList) > 0 { - _, err = updateStoreSku(dao.GetDB(), vendorID, successList, model.SyncFlagNewMask) + updateStoreSku(dao.GetDB(), vendorID, successList, model.SyncFlagNewMask) } return nil, err }, ctx, task, createList, 1 /*singleStoreHandler.GetStoreSkusBatchSize(partner.FuncCreateStoreSkus)*/, isContinueWhenError) @@ -389,7 +389,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, isFull bo successList = batchedStoreSkuList } if len(successList) > 0 { - _, err = updateStoreSku(dao.GetDB(), vendorID, successList, model.SyncFlagModifiedMask) + updateStoreSku(dao.GetDB(), vendorID, successList, model.SyncFlagModifiedMask) } return nil, err }, ctx, task, updateList, singleStoreHandler.GetStoreSkusBatchSize(partner.FuncUpdateStoreSkus), isContinueWhenError) @@ -403,7 +403,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, isFull bo successList = batchedStoreSkuList } if k == 0 && len(successList) > 0 { - _, err = updateStoreSku(dao.GetDB(), vendorID, bareSku2Sync(batchedStoreSkuList), model.SyncFlagModifiedMask) // ? + updateStoreSku(dao.GetDB(), vendorID, bareSku2Sync(successList), model.SyncFlagModifiedMask) // ? } return nil, err }, ctx, task, list, storeSkuHandler.GetStoreSkusBatchSize(partner.FuncUpdateStoreSkusStock), isContinueWhenError) @@ -423,7 +423,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, isFull bo successList = batchedStoreSkuList } if len(successList) > 0 { - _, err = updateStoreSku(dao.GetDB(), vendorID, bareSku2Sync(batchedStoreSkuList), model.SyncFlagSaleMask) + updateStoreSku(dao.GetDB(), vendorID, bareSku2Sync(successList), model.SyncFlagSaleMask) } return nil, err }, ctx, task, statusList, storeSkuHandler.GetStoreSkusBatchSize(partner.FuncUpdateStoreSkusStatus), isContinueWhenError) @@ -436,7 +436,7 @@ func syncStoreSkuNew(ctx *jxcontext.Context, parentTask tasksch.ITask, isFull bo successList = batchedStoreSkuList } if len(successList) > 0 { - _, err = updateStoreSku(dao.GetDB(), vendorID, bareSku2Sync(batchedStoreSkuList), model.SyncFlagPriceMask) + updateStoreSku(dao.GetDB(), vendorID, bareSku2Sync(successList), model.SyncFlagPriceMask) } return nil, err }, ctx, task, priceList, storeSkuHandler.GetStoreSkusBatchSize(partner.FuncUpdateStoreSkusPrice), isContinueWhenError) diff --git a/business/jxutils/jxutils_cms.go b/business/jxutils/jxutils_cms.go index fe03ae7a1..9fcd7d2b3 100644 --- a/business/jxutils/jxutils_cms.go +++ b/business/jxutils/jxutils_cms.go @@ -146,6 +146,14 @@ func IntMap2List(intMap map[int]int) []int { return retVal } +func IntList2Map(intList []int) map[int]int { + retVal := make(map[int]int) + for _, v := range intList { + retVal[v] = 1 + } + return retVal +} + func Int64Map2List(int64Map map[int64]int) []int64 { retVal := make([]int64, len(int64Map)) index := 0 @@ -166,6 +174,14 @@ func StringMap2List(stringMap map[string]int) []string { return retVal } +func StringList2Map(strList []string) map[string]int { + retVal := make(map[string]int) + for _, v := range strList { + retVal[v] = 1 + } + return retVal +} + func RegularizeSkuQuality(specQuality float32, specUnit string) (g int) { lowerSpecUnit := strings.ToLower(specUnit) if lowerSpecUnit == "kg" || lowerSpecUnit == "l" { diff --git a/business/partner/putils/store_sku.go b/business/partner/putils/store_sku.go index b090c84b8..4371257a5 100644 --- a/business/partner/putils/store_sku.go +++ b/business/partner/putils/store_sku.go @@ -4,6 +4,8 @@ import ( "fmt" "sort" + "git.rosy.net.cn/jx-callback/business/jxutils" + "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" "git.rosy.net.cn/jx-callback/business/jxutils/tasksch" @@ -203,10 +205,10 @@ func StoreSkuList2MapBySkuID(storeSkuList []*partner.StoreSkuInfo) (storeSkuMap func UnselectStoreSkuListByVendorSkuIDs(storeSkuList []*partner.StoreSkuInfo, vendorSkuIDs []string) (selectedStoreSkuList []*partner.StoreSkuInfo) { if len(vendorSkuIDs) > 0 { - storeSkuMap := StoreSkuList2MapByVendorSkuID(storeSkuList) - for _, v := range vendorSkuIDs { - if storeSkuMap[v] != nil { - selectedStoreSkuList = append(selectedStoreSkuList, storeSkuMap[v]) + vendorSkuIDMap := jxutils.StringList2Map(vendorSkuIDs) + for _, v := range storeSkuList { + if vendorSkuIDMap[v.VendorSkuID] == 0 { + selectedStoreSkuList = append(selectedStoreSkuList, v) } } } else { @@ -217,13 +219,10 @@ func UnselectStoreSkuListByVendorSkuIDs(storeSkuList []*partner.StoreSkuInfo, ve func UnselectStoreSkuSyncListByVendorSkuIDs(storeSkuList []*dao.StoreSkuSyncInfo, vendorSkuIDs []string) (selectedStoreSkuList []*dao.StoreSkuSyncInfo) { if len(vendorSkuIDs) > 0 { - storeSkuMap := make(map[string]*dao.StoreSkuSyncInfo) + vendorSkuIDMap := jxutils.StringList2Map(vendorSkuIDs) for _, v := range storeSkuList { - storeSkuMap[v.VendorSkuID] = v - } - for _, v := range vendorSkuIDs { - if storeSkuMap[v] != nil { - selectedStoreSkuList = append(selectedStoreSkuList, storeSkuMap[v]) + if vendorSkuIDMap[v.VendorSkuID] == 0 { + selectedStoreSkuList = append(selectedStoreSkuList, v) } } } else { @@ -234,10 +233,10 @@ func UnselectStoreSkuSyncListByVendorSkuIDs(storeSkuList []*dao.StoreSkuSyncInfo func UnselectStoreSkuListBySkuIDs(storeSkuList []*partner.StoreSkuInfo, skuIDs []int) (selectedStoreSkuList []*partner.StoreSkuInfo) { if len(skuIDs) > 0 { - storeSkuMap := StoreSkuList2MapBySkuID(storeSkuList) - for _, v := range skuIDs { - if storeSkuMap[v] != nil { - selectedStoreSkuList = append(selectedStoreSkuList, storeSkuMap[v]) + skuIDMap := jxutils.IntList2Map(skuIDs) + for _, v := range storeSkuList { + if skuIDMap[v.SkuID] == 0 { + selectedStoreSkuList = append(selectedStoreSkuList, v) } } } else {