From 1c9e3acd0f2ffb6be45d3e27e78fea6979403ee7 Mon Sep 17 00:00:00 2001 From: gazebo Date: Sat, 22 Jun 2019 01:16:59 +0800 Subject: [PATCH] =?UTF-8?q?-=20=E4=BF=AE=E5=A4=8DupdateStoreSkusSaleWithou?= =?UTF-8?q?tSync=E4=B8=AD=E6=9B=B4=E6=96=B0StoreSkuBind=E7=9A=84=E9=94=99?= =?UTF-8?q?=E8=AF=AF=EF=BC=88=E5=BA=94=E8=AF=A5=E5=85=88=E8=AF=BB=E5=86=8D?= =?UTF-8?q?=E5=AD=98=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index fd1f8c39d..ac35c57eb 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -918,6 +918,13 @@ func updateStoreSkusSaleWithoutSync(ctx *jxcontext.Context, storeID int, skuBind var num int64 db := dao.GetDB() needSyncIDMap := make(map[int]int) + skuIDMap := make(map[int]int) + skuBindSkuInfosMap := make(map[int]*StoreSkuBindSkuInfo) + for _, v := range skuBindSkuInfos { + skuIDMap[v.SkuID] = 1 + skuBindSkuInfosMap[v.SkuID] = v + } + dao.Begin(db) defer func() { if r := recover(); r != nil { @@ -925,9 +932,13 @@ func updateStoreSkusSaleWithoutSync(ctx *jxcontext.Context, storeID int, skuBind panic(r) } }() - for _, v := range skuBindSkuInfos { - if v.IsSale != 0 { - skuBind := &model.StoreSkuBind{} + storeSkuList, err := dao.GetStoresSkusInfo(db, []int{storeID}, jxutils.IntMap2List(skuIDMap)) + if err != nil { + dao.Rollback(db) + return nil, err + } + for _, skuBind := range storeSkuList { + if v := skuBindSkuInfosMap[skuBind.SkuID]; v != nil && v.IsSale != 0 { if v.IsSale == 1 { skuBind.Status = model.StoreSkuBindStatusNormal } else { @@ -940,10 +951,7 @@ func updateStoreSkusSaleWithoutSync(ctx *jxcontext.Context, storeID int, skuBind model.FieldMtwmSyncStatus: skuBind.MtwmSyncStatus | model.SyncFlagSaleMask, model.FieldElmSyncStatus: skuBind.ElmSyncStatus | model.SyncFlagSaleMask, model.FieldWscSyncStatus: skuBind.WscSyncStatus | model.SyncFlagSaleMask, - }, userName, map[string]interface{}{ - model.FieldStoreID: storeID, - model.FieldSkuID: v.SkuID, - }); err != nil { + }, userName, nil); err != nil { dao.Rollback(db) return nil, err }