88 lines
3.5 KiB
Go
88 lines
3.5 KiB
Go
package mtwm
|
|
|
|
import (
|
|
"git.rosy.net.cn/baseapi/utils"
|
|
"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"
|
|
"git.rosy.net.cn/jx-callback/globals"
|
|
"git.rosy.net.cn/jx-callback/globals/api"
|
|
)
|
|
|
|
func (p *PurchaseHandler) SyncStoreCategory(ctx *jxcontext.Context, parentTask tasksch.ITask, storeID int, isAsync bool) (hint string, err error) {
|
|
userName := ctx.GetUserName()
|
|
strStoreID := utils.Int2Str(storeID)
|
|
db := dao.GetDB()
|
|
rootTask := tasksch.NewSeqTask("mtwm SyncStoreCategory", userName, func(rootTask *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
|
level := step + 1
|
|
catList, err := dao.GetStoreCategories(db, model.VendorIDMTWM, storeID, level)
|
|
task := tasksch.NewParallelTask("mtwm SyncStoreCategory2", nil, userName, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
|
updateFields := []string{dao.GetSyncStatusStructField(model.VendorNames[model.VendorIDMTWM])}
|
|
catInfo := batchItemList[0].(*dao.StoreCatSyncInfo)
|
|
if globals.EnableStoreWrite && globals.EnableMtwmStoreWrite {
|
|
if catInfo.MtwmSyncStatus&model.SyncFlagDeletedMask != 0 { // 删除
|
|
err = api.MtwmAPI.RetailCatDelete(strStoreID, catInfo.MtwmID)
|
|
} else if catInfo.MtwmSyncStatus&(model.SyncFlagNewMask|model.SyncFlagModifiedMask) != 0 { // 新增
|
|
catName := catInfo.CatName
|
|
subCatName := ""
|
|
originName := ""
|
|
if catInfo.MtwmSyncStatus&model.SyncFlagNewMask == 0 {
|
|
originName = catInfo.MtwmID
|
|
}
|
|
if level == 2 {
|
|
originName = catInfo.ParentCatName
|
|
catName = catInfo.ParentCatName
|
|
subCatName = catInfo.CatName
|
|
if catInfo.MtwmSyncStatus&model.SyncFlagNewMask == 0 {
|
|
originName = catInfo.MtwmID
|
|
catName = catInfo.CatName
|
|
subCatName = ""
|
|
}
|
|
}
|
|
if catName == "" {
|
|
panic("catName is empty")
|
|
}
|
|
if err := api.MtwmAPI.RetailCatUpdate(strStoreID, originName, catName, subCatName, catInfo.Seq); err == nil {
|
|
catInfo.MtwmID = catInfo.CatName
|
|
updateFields = append(updateFields, dao.GetVendorThingIDStructField(model.VendorNames[model.VendorIDMTWM]))
|
|
}
|
|
}
|
|
}
|
|
if err == nil {
|
|
db2 := dao.GetDB()
|
|
catInfo.MtwmSyncStatus = 0
|
|
_, err = dao.UpdateEntity(db2, &catInfo.StoreSkuCategoryMap, updateFields...)
|
|
}
|
|
return nil, err
|
|
}, catList)
|
|
rootTask.AddChild(task).Run()
|
|
_, err = task.GetResult(0)
|
|
return nil, err
|
|
}, 2)
|
|
tasksch.AddChild(parentTask, rootTask).Run()
|
|
if !isAsync {
|
|
_, err = rootTask.GetResult(0)
|
|
}
|
|
return rootTask.ID, err
|
|
}
|
|
func (p *PurchaseHandler) ReadStoreCategories(storeID int) (cats []*model.SkuCategory, err error) {
|
|
return nil, nil
|
|
}
|
|
|
|
func (p *PurchaseHandler) ReadStoreSku(storeID, skuID int) (skuNameExt *model.SkuNameExt, err error) {
|
|
return nil, nil
|
|
}
|
|
|
|
func (p *PurchaseHandler) SyncStoreSkus(ctx *jxcontext.Context, parentTask tasksch.ITask, storeID int, skuIDs []int, isAsync, isContinueWhenError bool) (hint string, err error) {
|
|
return hint, err
|
|
}
|
|
|
|
func (p *PurchaseHandler) RefreshStoresAllSkusID(ctx *jxcontext.Context, parentTask tasksch.ITask, isAsync bool, storeIDs []int) (hint string, err error) {
|
|
return hint, err
|
|
}
|
|
|
|
func (p *PurchaseHandler) FullSyncStoreSkus(ctx *jxcontext.Context, parentTask tasksch.ITask, storeID int, isAsync, isContinueWhenError bool) (hint string, err error) {
|
|
return hint, err
|
|
}
|