- add jxcontext.Context to all public API.
This commit is contained in:
@@ -7,6 +7,7 @@ import (
|
||||
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/tasksch"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||
@@ -119,7 +120,7 @@ func (v *VendorSync) GetSingleStoreHandler(vendorID int) partner.ISingleStoreHan
|
||||
return nil
|
||||
}
|
||||
|
||||
func (v *VendorSync) syncCategories(parentTask tasksch.ITask, multiStoresHandler partner.IMultipleStoresHandler, db *dao.DaoDB, cats []*model.SkuCategory, userName string) (err error) {
|
||||
func (v *VendorSync) syncCategories(ctx *jxcontext.Context, multiStoresHandler partner.IMultipleStoresHandler, db *dao.DaoDB, cats []*model.SkuCategory, userName string) (err error) {
|
||||
syncStatusFieldName := multiStoresHandler.GetFieldSyncStatusName()
|
||||
task := tasksch.RunParallelTask("syncCategories", nil, userName, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||
cat := batchItemList[0].(*model.SkuCategory)
|
||||
@@ -139,14 +140,14 @@ func (v *VendorSync) syncCategories(parentTask tasksch.ITask, multiStoresHandler
|
||||
}
|
||||
return nil, err
|
||||
}, cats)
|
||||
parentTask.AddChild(task)
|
||||
ctx.SetTaskOrAddChild(task)
|
||||
_, err = task.GetResult(0)
|
||||
return err
|
||||
}
|
||||
|
||||
func (v *VendorSync) SyncCategory(db *dao.DaoDB, categoryID int, isAsync bool, userName string) (hint string, err error) {
|
||||
func (v *VendorSync) SyncCategory(ctx *jxcontext.Context, db *dao.DaoDB, categoryID int, isAsync bool, userName string) (hint string, err error) {
|
||||
globals.SugarLogger.Debug(v.MultiStoreVendorIDs)
|
||||
hint, err = v.LoopMultiStoresVendors(db, "SyncCategory", isAsync, userName, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||
hint, err = v.LoopMultiStoresVendors(ctx, db, "SyncCategory", isAsync, userName, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||
multiStoresHandler := v.GetMultiStoreHandler(batchItemList[0].(int))
|
||||
var cats []*model.SkuCategory
|
||||
cond := make(map[string]interface{})
|
||||
@@ -157,7 +158,7 @@ func (v *VendorSync) SyncCategory(db *dao.DaoDB, categoryID int, isAsync bool, u
|
||||
}
|
||||
err := dao.GetEntitiesByKV(db, &cats, cond, true)
|
||||
if err == nil {
|
||||
err = v.syncCategories(t, multiStoresHandler, db, cats, userName)
|
||||
err = v.syncCategories(ctx, multiStoresHandler, db, cats, userName)
|
||||
}
|
||||
if err != nil || categoryID > 0 {
|
||||
return nil, err
|
||||
@@ -165,15 +166,15 @@ func (v *VendorSync) SyncCategory(db *dao.DaoDB, categoryID int, isAsync bool, u
|
||||
cond[model.FieldLevel] = 2
|
||||
err = dao.GetEntitiesByKV(db, &cats, cond, true)
|
||||
if err == nil {
|
||||
err = v.syncCategories(t, multiStoresHandler, db, cats, userName)
|
||||
err = v.syncCategories(ctx, multiStoresHandler, db, cats, userName)
|
||||
}
|
||||
return nil, err
|
||||
})
|
||||
return "", err
|
||||
}
|
||||
|
||||
func (v *VendorSync) SyncReorderCategories(db *dao.DaoDB, categoryID int, isAsync bool, userName string) (hint string, err error) {
|
||||
hint, err = v.LoopMultiStoresVendors(db, "SyncReorderCategories", isAsync, userName, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||
func (v *VendorSync) SyncReorderCategories(ctx *jxcontext.Context, db *dao.DaoDB, categoryID int, isAsync bool, userName string) (hint string, err error) {
|
||||
hint, err = v.LoopMultiStoresVendors(ctx, db, "SyncReorderCategories", isAsync, userName, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||
multiStoresHandler := v.GetMultiStoreHandler(batchItemList[0].(int))
|
||||
err2 := multiStoresHandler.ReorderCategories(db, categoryID, userName)
|
||||
if err2 == nil {
|
||||
@@ -186,9 +187,9 @@ func (v *VendorSync) SyncReorderCategories(db *dao.DaoDB, categoryID int, isAsyn
|
||||
return "", err
|
||||
}
|
||||
|
||||
func (v *VendorSync) SyncStore(db *dao.DaoDB, vendorID, storeID int, isAsync bool, userName string) (hint string, err error) {
|
||||
func (v *VendorSync) SyncStore(ctx *jxcontext.Context, db *dao.DaoDB, vendorID, storeID int, isAsync bool, userName string) (hint string, err error) {
|
||||
globals.SugarLogger.Debugf("SyncStore, storeID:%d", storeID)
|
||||
hint, err = v.LoopStoreMap(db, "SyncStore", isAsync, userName, storeID, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||
hint, err = v.LoopStoreMap(ctx, db, "SyncStore", isAsync, userName, storeID, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||
storeMap := batchItemList[0].(*model.StoreMap)
|
||||
if (vendorID == -1 || vendorID == storeMap.VendorID) && (storeMap.SyncStatus != 0) {
|
||||
if handler := v.GetStoreHandler(storeMap.VendorID); handler != nil {
|
||||
@@ -203,9 +204,9 @@ func (v *VendorSync) SyncStore(db *dao.DaoDB, vendorID, storeID int, isAsync boo
|
||||
return "", err
|
||||
}
|
||||
|
||||
func (v *VendorSync) SyncSku(db *dao.DaoDB, nameID, skuID int, isAsync bool, userName string) (hint string, err error) {
|
||||
func (v *VendorSync) SyncSku(ctx *jxcontext.Context, db *dao.DaoDB, nameID, skuID int, isAsync bool, userName string) (hint string, err error) {
|
||||
globals.SugarLogger.Debugf("SyncSku, nameID:%d, skuID:%d, userName:%s", nameID, skuID, userName)
|
||||
hint, err = v.LoopMultiStoresVendors(db, "SyncSku", isAsync, userName, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||
hint, err = v.LoopMultiStoresVendors(ctx, db, "SyncSku", isAsync, userName, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||
multiStoresHandler := v.GetMultiStoreHandler(batchItemList[0].(int))
|
||||
syncStatusFieldName := multiStoresHandler.GetFieldSyncStatusName()
|
||||
var skuList []*model.Sku
|
||||
@@ -248,9 +249,9 @@ func (v *VendorSync) SyncSku(db *dao.DaoDB, nameID, skuID int, isAsync bool, use
|
||||
}
|
||||
|
||||
//
|
||||
func (v *VendorSync) SyncStoresSkus(db *dao.DaoDB, vendorIDs []int, storeIDs []int, skuIDs []int, isAsync bool, userName string) (hint string, err error) {
|
||||
func (v *VendorSync) SyncStoresSkus(ctx *jxcontext.Context, db *dao.DaoDB, vendorIDs []int, storeIDs []int, skuIDs []int, isAsync bool, userName string) (hint string, err error) {
|
||||
globals.SugarLogger.Debug("SyncStoresSkus")
|
||||
hint, err = v.LoopStoreVendors(db, vendorIDs, "SyncStoresSkus", isAsync, userName, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||
hint, err = v.LoopStoreVendors(ctx, db, vendorIDs, "SyncStoresSkus", isAsync, userName, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||
handler := v.GetStoreHandler(batchItemList[0].(int))
|
||||
_, err = handler.SyncStoresSkus(db, storeIDs, skuIDs, false, userName)
|
||||
return nil, err
|
||||
@@ -258,10 +259,11 @@ func (v *VendorSync) SyncStoresSkus(db *dao.DaoDB, vendorIDs []int, storeIDs []i
|
||||
return hint, err
|
||||
}
|
||||
|
||||
func (v *VendorSync) LoopStoreMap(db *dao.DaoDB, taskName string, isAsync bool, userName string, storeID int, handler tasksch.WorkFunc) (hint string, err error) {
|
||||
storeMaps, err := GetStoreVendorMaps(db, storeID, -1)
|
||||
func (v *VendorSync) LoopStoreMap(ctx *jxcontext.Context, db *dao.DaoDB, taskName string, isAsync bool, userName string, storeID int, handler tasksch.WorkFunc) (hint string, err error) {
|
||||
storeMaps, err := GetStoreVendorMaps(ctx, db, storeID, -1)
|
||||
if err == nil {
|
||||
task := tasksch.RunManagedParallelTask(taskName, nil, userName, handler, storeMaps)
|
||||
ctx.SetTaskOrAddChild(task)
|
||||
hint = task.ID
|
||||
if !isAsync {
|
||||
_, err = task.GetResult(0)
|
||||
@@ -270,18 +272,19 @@ func (v *VendorSync) LoopStoreMap(db *dao.DaoDB, taskName string, isAsync bool,
|
||||
return hint, makeSyncError(err)
|
||||
}
|
||||
|
||||
func (v *VendorSync) LoopMultiStoresVendors(db *dao.DaoDB, taskName string, isAsync bool, userName string, handler tasksch.WorkFunc) (hint string, err error) {
|
||||
func (v *VendorSync) LoopMultiStoresVendors(ctx *jxcontext.Context, db *dao.DaoDB, taskName string, isAsync bool, userName string, handler tasksch.WorkFunc) (hint string, err error) {
|
||||
if taskName == "" {
|
||||
taskName = "LoopMultiStoresVendors"
|
||||
}
|
||||
task := tasksch.RunManagedParallelTask(taskName, nil, userName, handler, v.MultiStoreVendorIDs)
|
||||
ctx.SetTaskOrAddChild(task)
|
||||
if !isAsync {
|
||||
_, err = task.GetResult(0)
|
||||
}
|
||||
return task.ID, makeSyncError(err)
|
||||
}
|
||||
|
||||
func (v *VendorSync) LoopStoreVendors(db *dao.DaoDB, vendorIDs []int, taskName string, isAsync bool, userName string, handler tasksch.WorkFunc) (hint string, err error) {
|
||||
func (v *VendorSync) LoopStoreVendors(ctx *jxcontext.Context, db *dao.DaoDB, vendorIDs []int, taskName string, isAsync bool, userName string, handler tasksch.WorkFunc) (hint string, err error) {
|
||||
if taskName == "" {
|
||||
taskName = "LoopStoreVendors"
|
||||
}
|
||||
@@ -306,13 +309,14 @@ func (v *VendorSync) LoopStoreVendors(db *dao.DaoDB, vendorIDs []int, taskName s
|
||||
allHandlers = allHandlers[:count]
|
||||
}
|
||||
task := tasksch.RunManagedParallelTask(taskName, nil, userName, handler, allHandlers)
|
||||
ctx.SetTaskOrAddChild(task)
|
||||
if !isAsync {
|
||||
_, err = task.GetResult(0)
|
||||
}
|
||||
return task.ID, err
|
||||
}
|
||||
|
||||
func (v *VendorSync) LoopSingleStoreVendors(db *dao.DaoDB, taskName string, isAsync bool, userName string, handler tasksch.WorkFunc) (hint string, err error) {
|
||||
func (v *VendorSync) LoopSingleStoreVendors(ctx *jxcontext.Context, db *dao.DaoDB, taskName string, isAsync bool, userName string, handler tasksch.WorkFunc) (hint string, err error) {
|
||||
if taskName == "" {
|
||||
taskName = "LoopSingleStoreVendors"
|
||||
}
|
||||
@@ -322,6 +326,7 @@ func (v *VendorSync) LoopSingleStoreVendors(db *dao.DaoDB, taskName string, isAs
|
||||
FROM store_map
|
||||
WHERE vendor_id IN (`+dao.GenQuestionMarks(len(v.SingleStoreVendorIDs))+")", v.SingleStoreVendorIDs); err == nil {
|
||||
task := tasksch.RunManagedParallelTask(taskName, nil, userName, handler, storeMaps)
|
||||
ctx.SetTaskOrAddChild(task)
|
||||
hint = task.ID
|
||||
if !isAsync {
|
||||
_, err = task.GetResult(0)
|
||||
@@ -330,7 +335,7 @@ func (v *VendorSync) LoopSingleStoreVendors(db *dao.DaoDB, taskName string, isAs
|
||||
return hint, makeSyncError(err)
|
||||
}
|
||||
|
||||
func (v *VendorSync) RefreshSkuIDs(nameID, skuID int, userName string) (err error) {
|
||||
func (v *VendorSync) RefreshSkuIDs(ctx *jxcontext.Context, nameID, skuID int, userName string) (err error) {
|
||||
sql := `
|
||||
SELECT t1.id
|
||||
FROM sku t1
|
||||
@@ -351,7 +356,7 @@ func (v *VendorSync) RefreshSkuIDs(nameID, skuID int, userName string) (err erro
|
||||
db := dao.GetDB()
|
||||
if err = dao.GetRows(db, &ids, sql, sqlParams); err == nil {
|
||||
// globals.SugarLogger.Debug(utils.Format4Output(ids, false))
|
||||
_, err = v.LoopMultiStoresVendors(db, "RefreshSkuIDs", false, userName, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||
_, err = v.LoopMultiStoresVendors(ctx, db, "RefreshSkuIDs", false, userName, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (interface{}, error) {
|
||||
multiStoresHandler := v.GetMultiStoreHandler(batchItemList[0].(int))
|
||||
err := multiStoresHandler.SyncSkusIDMap(db, ids, userName)
|
||||
globals.SugarLogger.Debug(err)
|
||||
|
||||
Reference in New Issue
Block a user