- 修复updateStoreSkusSaleWithoutSync中更新StoreSkuBind的错误(应该先读再存)
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user