- fix bug in UpdateStore(GetRows)

This commit is contained in:
gazebo
2018-10-26 20:09:56 +08:00
parent f12cfafe23
commit 0397729aa0
6 changed files with 29 additions and 19 deletions

View File

@@ -211,6 +211,13 @@ func (t *BaseTask) SetParent(parentTask ITask) {
t.parent = parentTask
}
func AddChild(parentTask ITask, task ITask) ITask {
if parentTask != nil {
return parentTask.AddChild(task)
}
return task
}
/////////
func (t *BaseTask) MarshalJSON() ([]byte, error) {

View File

@@ -9,8 +9,8 @@ import (
)
const (
testShopBaiduID = 2233909607
testShopID = "100077"
testShopBaiduID = 2233976901
testShopID = 100077
)
func init() {

View File

@@ -144,7 +144,7 @@ func (p *PurchaseHandler) UpdateStore(db *dao.DaoDB, storeID int, userName strin
WHERE t1.id = ?
ORDER BY t2.updated_at
`
if err = dao.GetRow(db, &stores, sql, model.VendorIDEBAI, utils.DefaultTimeValue, storeID); err == nil {
if err = dao.GetRows(db, &stores, sql, model.VendorIDEBAI, utils.DefaultTimeValue, storeID); err == nil {
for _, store := range stores {
params := genStoreMapFromStore(store)
// globals.SugarLogger.Debug(utils.Format4Output(params, false))

View File

@@ -133,7 +133,7 @@ func (p *PurchaseHandler) SyncStoreSkus(ctx *jxcontext.Context, parentTask tasks
return "", err
}
if err = dao.GetRows(db, &storeSkuInfoList, sql, sqlParams...); err == nil {
task := tasksch.NewParallelTask("syncOneStoreSkus skus", nil, userName, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
task := tasksch.NewParallelTask("SyncStoreSkus skus", nil, userName, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
storeSku := batchItemList[0].(*tStoreSkuFullInfo)
updateFields := []string{model.FieldEbaiSyncStatus}
if globals.EnableStoreWrite {
@@ -160,7 +160,7 @@ func (p *PurchaseHandler) SyncStoreSkus(ctx *jxcontext.Context, parentTask tasks
}
return nil, err
}, storeSkuInfoList)
parentTask.AddChild(task).Run()
tasksch.AddChild(parentTask, task).Run()
_, err = task.GetResult(0)
}
}
@@ -374,7 +374,7 @@ func (p *PurchaseHandler) SyncStoreCategory(ctx *jxcontext.Context, parentTask t
}
if err = dao.GetRows(db, &catList, sql, sqlParams...); err == nil {
strStoreID := utils.Int2Str(storeID)
task := tasksch.NewParallelTask("syncOneStoreCategoriesFromLocal2Remote", nil, userName, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
task := tasksch.NewParallelTask("SyncStoreCategory", nil, userName, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
updateFields := []string{model.FieldEbaiSyncStatus}
catInfo := batchItemList[0].(*tStoreCatInfo)
// globals.SugarLogger.Debug(utils.Format4Output(catInfo, false))
@@ -403,7 +403,7 @@ func (p *PurchaseHandler) SyncStoreCategory(ctx *jxcontext.Context, parentTask t
}
return nil, err
}, 2)
parentTask.AddChild(rootTask).Run()
tasksch.AddChild(parentTask, rootTask).Run()
if !isAsync {
_, err = rootTask.GetResult(0)
}
@@ -417,8 +417,8 @@ func (p *PurchaseHandler) processLocalCatByRemote(db *dao.DaoDB, storeID int, lo
for _, v := range remoteCatList {
jxCat := localCatMap[v.Name]
if jxCat == nil { // 远程有,本地没有,非法类别
globals.SugarLogger.Debug(v.Name)
globals.SugarLogger.Debug(utils.Format4Output(localCatMap, false))
// globals.SugarLogger.Debug(v.Name)
// globals.SugarLogger.Debug(utils.Format4Output(localCatMap, false))
} else {
if jxCat.EbaiID != v.CategoryID || utils.Int2Str(jxCat.CatID) != v.ShopCustomID {
if jxCat.ID == 0 { // 远程有,本门店没有

View File

@@ -5,36 +5,39 @@ import (
"time"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
"git.rosy.net.cn/jx-callback/business/model/dao"
)
func TestSyncStoresSkus(t *testing.T) {
db := dao.GetDB()
_, err := new(PurchaseHandler).SyncStoresSkus(db, []int{100077}, []int{7}, false, "autotest")
skus := make([]int, 100)
for i := 0; i < 100; i++ {
skus[i] = i + 1
}
_, err := new(PurchaseHandler).SyncStoreSkus(jxcontext.AdminCtx, nil, testShopID, skus, false)
if err != nil {
t.Fatal(err.Error())
}
time.Sleep(5 * time.Second)
time.Sleep(4 * time.Second)
}
func TestSyncOneStoreCategoriesFromRemote2Local(t *testing.T) {
db := dao.GetDB()
err := new(PurchaseHandler).SyncLocalStoreCategory(db, 100077, "autotest")
err := new(PurchaseHandler).SyncLocalStoreCategory(db, testShopID, "autotest")
if err != nil {
t.Fatal(err.Error())
}
}
func TestSyncOneStoreCategoriesFromLocal2Remote(t *testing.T) {
db := dao.GetDB()
err := new(PurchaseHandler).SyncOneStoreCategories(db, 100077, "autotest")
_, err := new(PurchaseHandler).SyncStoreCategory(jxcontext.AdminCtx, nil, testShopID, false)
if err != nil {
t.Fatal(err.Error())
}
}
func TestGetAllRemoteSkus(t *testing.T) {
result, err := new(PurchaseHandler).GetAllRemoteSkus(100077)
result, err := new(PurchaseHandler).GetAllRemoteSkus(9)
if err != nil {
t.Fatal(err.Error())
} else {
@@ -43,14 +46,14 @@ func TestGetAllRemoteSkus(t *testing.T) {
}
func TestDeleteRemoteSkus(t *testing.T) {
err := new(PurchaseHandler).DeleteRemoteSkus(100077, nil)
err := new(PurchaseHandler).DeleteRemoteSkus(testShopID, nil)
if err != nil {
t.Fatal(err.Error())
}
}
func TestDeleteRemoteCategories(t *testing.T) {
err := new(PurchaseHandler).DeleteRemoteCategories(100077, nil)
err := new(PurchaseHandler).DeleteRemoteCategories(testShopID, nil)
if err != nil {
t.Fatal(err.Error())
}

View File

@@ -17,7 +17,7 @@ func TestReadStore(t *testing.T) {
func TestUpdateStore(t *testing.T) {
db := dao.GetDB()
err := new(PurchaseHandler).UpdateStore(db, 100077, "autotest")
err := new(PurchaseHandler).UpdateStore(db, testShopID, "autotest")
if err != nil {
t.Fatal(err.Error())
}