优化速度

This commit is contained in:
Rosy-zhudan
2019-08-30 13:42:10 +08:00
parent a1086344ca
commit 8ec7239b1d

View File

@@ -1049,16 +1049,16 @@ func SortCategorySku(ctx *jxcontext.Context, catID int, skuIDList []int) (err er
userName := ctx.GetUserName() userName := ctx.GetUserName()
var skuList []*model.Sku var skuList []*model.Sku
if skuList, err = dao.GetSkuByCats(db, []int{catID}); err == nil && len(skuList) > 0 { if skuList, err = dao.GetSkuByCats(db, []int{catID}); err == nil && len(skuList) > 0 {
if len(skuList) == len(skuIDList) { if len(skuList) != len(skuIDList) {
return errors.New("商品数量不匹配!")
}
skuIDMap := make(map[int]int) skuIDMap := make(map[int]int)
for index, id := range skuIDList { for index, id := range skuIDList {
skuIDMap[id] = index + 1 skuIDMap[id] = index + 1
} }
for _, value := range skuList { for _, value := range skuList {
if _, ok := skuIDMap[value.ID]; !ok { if _, ok := skuIDMap[value.ID]; !ok {
err = errors.New("商品数据不匹配!") return errors.New("商品数据不匹配!")
break
} }
} }
@@ -1071,6 +1071,7 @@ func SortCategorySku(ctx *jxcontext.Context, catID int, skuIDList []int) (err er
} }
} }
}() }()
nameIDList := []int{}
for _, value := range skuList { for _, value := range skuList {
seq := skuIDMap[value.ID] seq := skuIDMap[value.ID]
kvs := map[string]interface{} { kvs := map[string]interface{} {
@@ -1083,17 +1084,18 @@ func SortCategorySku(ctx *jxcontext.Context, catID int, skuIDList []int) (err er
dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, sku, nil, ctx.GetUserName(), nil, model.FieldJdSyncStatus, model.SyncFlagModifiedMask) dao.UpdateEntityLogicallyAndUpdateSyncStatus(db, sku, nil, ctx.GetUserName(), nil, model.FieldJdSyncStatus, model.SyncFlagModifiedMask)
nameID := value.NameID nameID := value.NameID
skuIDs, err2 := dao.GetSkuIDByNames(db, []int{nameID}) nameIDList = append(nameIDList, nameID)
_, err = CurVendorSync.SyncSku(ctx, db, nameID, -1, false, false, userName)
}
skuIDs, err2 := dao.GetSkuIDByNames(db, nameIDList)
if err = err2; err == nil && len(skuIDs) > 0 { if err = err2; err == nil && len(skuIDs) > 0 {
_, err = SetStoreSkuSyncStatus2(db, nil, partner.GetSingleStoreVendorIDs(), skuIDs, model.SyncFlagModifiedMask) _, err = SetStoreSkuSyncStatus2(db, nil, partner.GetSingleStoreVendorIDs(), skuIDs, model.SyncFlagModifiedMask)
} }
if err == nil { if err == nil {
dao.Commit(db) dao.Commit(db)
_, err = CurVendorSync.SyncSku(ctx, db, nameID, -1, false, false, userName)
}
}
} else { } else {
err = errors.New("商品数量不匹配!") dao.Rollback(db)
} }
} }