- remove many useless isForce parameters.
- isSync to isAsync.
This commit is contained in:
@@ -176,8 +176,8 @@ func (v *VendorSync) SyncStore(db *dao.DaoDB, vendorID, storeID int, isForce boo
|
||||
return err
|
||||
}
|
||||
|
||||
func (v *VendorSync) SyncSku(db *dao.DaoDB, nameID, skuID int, isForce bool, userName string) (err error) {
|
||||
globals.SugarLogger.Debugf("SyncSku, nameID:%d, skuID:%d, isForce:%t, userName:%s", nameID, skuID, isForce, userName)
|
||||
func (v *VendorSync) SyncSku(db *dao.DaoDB, nameID, skuID int, userName string) (err error) {
|
||||
globals.SugarLogger.Debugf("SyncSku, nameID:%d, skuID:%d, userName:%s", nameID, skuID, userName)
|
||||
err = v.LoopMultiStoresVendors(db, "SyncSku", userName, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||
multiStoresHandler := v.GetMultiStoreHandler(batchItemList[0].(int))
|
||||
syncStatusFieldName := multiStoresHandler.GetFieldSyncStatusName()
|
||||
@@ -196,7 +196,7 @@ func (v *VendorSync) SyncSku(db *dao.DaoDB, nameID, skuID int, isForce bool, use
|
||||
for _, v := range batchItemList {
|
||||
sku := v.(*model.Sku)
|
||||
syncStatus := jxutils.GetObjFieldByName(sku, syncStatusFieldName).(int8)
|
||||
if (skuID == -1 || skuID == sku.ID) && (isForce || syncStatus != 0) {
|
||||
if (skuID == -1 || skuID == sku.ID) && (syncStatus != 0) {
|
||||
updateFields := []string{syncStatusFieldName}
|
||||
if syncStatus&model.SyncFlagDeletedMask != 0 { // 删除
|
||||
err = multiStoresHandler.DeleteSku(db, sku, userName)
|
||||
@@ -224,14 +224,14 @@ func (v *VendorSync) SyncSku(db *dao.DaoDB, nameID, skuID int, isForce bool, use
|
||||
}
|
||||
|
||||
//
|
||||
func (v *VendorSync) SyncStoresSkus(db *dao.DaoDB, storeIDs []int, skuIDs []int, isForce bool, userName string) (err error) {
|
||||
func (v *VendorSync) SyncStoresSkus(db *dao.DaoDB, vendorIDs []int, storeIDs []int, skuIDs []int, isAsync bool, userName string) (hint string, err error) {
|
||||
globals.SugarLogger.Debug("SyncStoresSkus")
|
||||
err = v.LoopStoreVendors(db, "SyncStoresSkus", userName, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||
hint, err = v.LoopStoreVendors(db, isAsync, vendorIDs, "SyncStoresSkus", userName, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||
handler := v.GetStoreHandler(batchItemList[0].(int))
|
||||
err = handler.SyncStoresSkus(db, storeIDs, skuIDs, isForce, userName)
|
||||
_, err = handler.SyncStoresSkus(db, storeIDs, skuIDs, false, userName)
|
||||
return nil, err
|
||||
})
|
||||
return err
|
||||
return hint, err
|
||||
}
|
||||
|
||||
func (v *VendorSync) LoopStoreMap(db *dao.DaoDB, taskName, userName string, storeID int, handler tasksch.WorkFunc) (err error) {
|
||||
@@ -252,16 +252,36 @@ func (v *VendorSync) LoopMultiStoresVendors(db *dao.DaoDB, taskName, userName st
|
||||
return makeSyncError(err)
|
||||
}
|
||||
|
||||
func (v *VendorSync) LoopStoreVendors(db *dao.DaoDB, taskName, userName string, handler tasksch.WorkFunc) (err error) {
|
||||
func (v *VendorSync) LoopStoreVendors(db *dao.DaoDB, isAsync bool, vendorIDs []int, taskName, userName string, handler tasksch.WorkFunc) (hint string, err error) {
|
||||
if taskName == "" {
|
||||
taskName = "LoopStoreVendors"
|
||||
}
|
||||
var vendorIDMap map[int]int
|
||||
if len(vendorIDs) != 0 {
|
||||
vendorIDMap = make(map[int]int)
|
||||
for _, v := range vendorIDs {
|
||||
vendorIDMap[v] = 1
|
||||
}
|
||||
}
|
||||
allHandlers := make([]int, len(v.MultiStoreVendorIDs)+len(v.SingleStoreVendorIDs))
|
||||
copy(allHandlers, v.MultiStoreVendorIDs)
|
||||
copy(allHandlers[len(v.MultiStoreVendorIDs):], v.SingleStoreVendorIDs)
|
||||
if vendorIDMap != nil {
|
||||
count := 0
|
||||
for _, v := range allHandlers {
|
||||
if vendorIDMap[v] == 1 {
|
||||
allHandlers[count] = v
|
||||
count++
|
||||
}
|
||||
}
|
||||
allHandlers = allHandlers[:count]
|
||||
}
|
||||
task := tasksch.RunManagedTask(taskName, false, nil, len(allHandlers), 1, userName, handler, allHandlers)
|
||||
if isAsync {
|
||||
return task.ID, nil
|
||||
}
|
||||
_, err = task.GetResult(0)
|
||||
return makeSyncError(err)
|
||||
return "", makeSyncError(err)
|
||||
}
|
||||
|
||||
func (v *VendorSync) LoopSingleStoreVendors(db *dao.DaoDB, taskName, userName string, handler tasksch.WorkFunc) (err error) {
|
||||
@@ -283,7 +303,7 @@ func (v *VendorSync) LoopSingleStoreVendors(db *dao.DaoDB, taskName, userName st
|
||||
return makeSyncError(err)
|
||||
}
|
||||
|
||||
func (v *VendorSync) RefreshSkuIDs(nameID, skuID int, isForce bool, userName string) (err error) {
|
||||
func (v *VendorSync) RefreshSkuIDs(nameID, skuID int, userName string) (err error) {
|
||||
sql := `
|
||||
SELECT t1.id
|
||||
FROM sku t1
|
||||
|
||||
Reference in New Issue
Block a user