- UpdateStoresSkus
This commit is contained in:
@@ -229,6 +229,17 @@ func UpdateStoreSku(storeID int, skuBindInfo *StoreSkuBindInfo, userName string)
|
||||
}
|
||||
|
||||
func UpdateStoreSkus(storeID int, skuBindInfos []*StoreSkuBindInfo, userName string) (num int64, err error) {
|
||||
skuIDs, err := updateStoreSkusWithoutSync(storeID, skuBindInfos, userName)
|
||||
if err == nil {
|
||||
db := dao.GetDB()
|
||||
err = CurVendorSync.SyncStoresSkus(db, []int{storeID}, skuIDs, false, userName)
|
||||
return int64(len(skuIDs)), err
|
||||
}
|
||||
return 0, err
|
||||
}
|
||||
|
||||
func updateStoreSkusWithoutSync(storeID int, skuBindInfos []*StoreSkuBindInfo, userName string) (needSyncSkus []int, err error) {
|
||||
var num int64
|
||||
db := dao.GetDB()
|
||||
needSyncIDMap := make(map[int]int)
|
||||
dao.Begin(db)
|
||||
@@ -284,7 +295,7 @@ func UpdateStoreSkus(storeID int, skuBindInfos []*StoreSkuBindInfo, userName str
|
||||
globals.SugarLogger.Debug(utils.Format4Output(skuBind, false))
|
||||
if err = dao.CreateEntity(db, skuBind); err != nil {
|
||||
dao.Rollback(db)
|
||||
return 0, err
|
||||
return nil, err
|
||||
}
|
||||
num = 1
|
||||
}
|
||||
@@ -299,7 +310,7 @@ func UpdateStoreSkus(storeID int, skuBindInfos []*StoreSkuBindInfo, userName str
|
||||
model.FieldEbaiSyncStatus: model.SyncFlagDeletedMask,
|
||||
}, userName, nil); err != nil {
|
||||
dao.Rollback(db)
|
||||
return 0, err
|
||||
return nil, err
|
||||
}
|
||||
} else {
|
||||
needUpdate := false
|
||||
@@ -336,7 +347,7 @@ func UpdateStoreSkus(storeID int, skuBindInfos []*StoreSkuBindInfo, userName str
|
||||
dao.WrapUpdateULEntity(skuBind, userName)
|
||||
if num, err = dao.UpdateEntity(db, skuBind); err != nil {
|
||||
dao.Rollback(db)
|
||||
return 0, err
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -347,12 +358,28 @@ func UpdateStoreSkus(storeID int, skuBindInfos []*StoreSkuBindInfo, userName str
|
||||
}
|
||||
} else {
|
||||
dao.Rollback(db)
|
||||
return 0, err
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
dao.Commit(db)
|
||||
skuIDs := jxutils.IntMap2List(needSyncIDMap)
|
||||
err = CurVendorSync.SyncStoreSku(db, storeID, skuIDs, false, userName)
|
||||
return skuIDs, err
|
||||
}
|
||||
|
||||
func UpdateStoresSkus(storeIDs []int, skuBindInfos []*StoreSkuBindInfo, userName string) (num int64, err error) {
|
||||
for _, storeID := range storeIDs {
|
||||
if _, err = updateStoreSkusWithoutSync(storeID, skuBindInfos, userName); err != nil {
|
||||
return 0, err
|
||||
}
|
||||
}
|
||||
skuIDs := make([]int, 0)
|
||||
for _, v := range skuBindInfos {
|
||||
for _, v2 := range v.Skus {
|
||||
skuIDs = append(skuIDs, v2.SkuID)
|
||||
}
|
||||
}
|
||||
db := dao.GetDB()
|
||||
err = CurVendorSync.SyncStoresSkus(db, storeIDs, skuIDs, false, userName)
|
||||
return int64(len(skuIDs)), err
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user