- 修复putils中几个unselect函数的BUG

- syncStoreSkuNew中忽略更新数据库错误,返回原始的同步错
This commit is contained in:
gazebo
2019-07-27 22:24:49 +08:00
parent 991128242a
commit 6892467f4d
3 changed files with 35 additions and 20 deletions

View File

@@ -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)

View File

@@ -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" {

View File

@@ -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 {