- fix bug in updateStoreSkusWithoutSync

This commit is contained in:
gazebo
2018-10-24 20:27:22 +08:00
parent 576709a0bd
commit 442b8c6db3
8 changed files with 35 additions and 18 deletions

View File

@@ -14,6 +14,7 @@ import (
"git.rosy.net.cn/jx-callback/business/model/dao"
"git.rosy.net.cn/jx-callback/globals"
"git.rosy.net.cn/jx-callback/globals/api"
"github.com/astaxie/beego/orm"
)
const (
@@ -72,13 +73,14 @@ var (
}
)
func (p *PurchaseHandler) SyncStoresSkus(db *dao.DaoDB, storeIDs []int, skuIDs []int, isAsync bool, userName string) (hint string, err error) {
task := tasksch.RunSeqTask("ebai.SyncStoresSkus", userName, func(t *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
func (p *PurchaseHandler) SyncStoresSkus(ctx *jxcontext.Context, parentTask tasksch.ITask, db *dao.DaoDB, storeIDs []int, skuIDs []int, isAsync bool) (hint string, err error) {
task := tasksch.NewSeqTask("ebai.SyncStoresSkus", ctx.GetUserName(), func(t *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
storeID := storeIDs[step]
err = p.syncOneStoreSkus(t, db, storeID, skuIDs, false, userName)
err = p.syncOneStoreSkus(t, db, storeID, skuIDs, false, ctx.GetUserName())
return nil, err
}, len(storeIDs))
ctx.SetTaskOrAddChild(task, parentTask)
task.Run()
if !isAsync {
_, err = task.GetResult(0)
}
@@ -88,6 +90,14 @@ func (p *PurchaseHandler) SyncStoresSkus(db *dao.DaoDB, storeIDs []int, skuIDs [
func (p *PurchaseHandler) syncOneStoreSkus(parentTask tasksch.ITask, db *dao.DaoDB, storeID int, skuIDs []int, isAsync bool, userName string) (err error) {
globals.SugarLogger.Debugf("syncOneStoreSkus storeID:%d, skuIDs:%v, userName:%s", storeID, skuIDs, userName)
_, err2 := dao.GetStoreMapByStoreID(db, storeID, model.VendorIDEBAI)
if err = err2; err != nil {
if err == orm.ErrNoRows {
err = nil
}
return err
}
if err = p.syncOneStoreCategoriesFromRemote2Local(db, storeID, userName); err != nil {
return err
}
@@ -351,7 +361,8 @@ func (p *PurchaseHandler) syncOneStoreCategoriesFromRemote2Local(db *dao.DaoDB,
}
v.EbaiSyncStatus |= model.SyncFlagNewMask
}
if result, err := api.EbaiAPI.ShopCategoryGet(utils.Int2Str(storeID)); err == nil {
result, err2 := api.EbaiAPI.ShopCategoryGet(utils.Int2Str(storeID))
if err = err2; err == nil {
dao.Begin(db)
defer func() {
dao.Rollback(db)