- sku man.
This commit is contained in:
@@ -1,78 +1,14 @@
|
||||
package cms
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler/basesch"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||
"git.rosy.net.cn/jx-callback/business/partner"
|
||||
)
|
||||
|
||||
type VendorSync struct {
|
||||
}
|
||||
|
||||
var (
|
||||
CurVendorSync VendorSync
|
||||
)
|
||||
|
||||
var (
|
||||
ErrHaveNotImplementedYet = errors.New("还没有实现")
|
||||
ErrEntityNotExist = errors.New("找不到相应实体")
|
||||
)
|
||||
|
||||
func GetPurchaseHandler(vendorID int) partner.IPurchasePlatformHandler {
|
||||
return basesch.FixedBaseScheduler.GetPurchasePlatformFromVendorID(vendorID)
|
||||
}
|
||||
|
||||
func (v *VendorSync) SyncCategory(categoryID int, isForce bool, userName string) (err error) {
|
||||
db := dao.GetDB()
|
||||
cats := []*model.SkuCategory{}
|
||||
cond := make(map[string]interface{})
|
||||
if categoryID != 0 {
|
||||
cond["ID"] = categoryID
|
||||
}
|
||||
err = dao.GetEntities(db, &cats, cond, true)
|
||||
for _, cat := range cats {
|
||||
if (cat.JdSyncStatus & model.SyncFlagNewMask) != 0 { // 新增
|
||||
err = GetPurchaseHandler(model.VendorIDJD).CreateCategory(cat, userName)
|
||||
} else if (cat.JdSyncStatus&model.SyncFlagModifiedMask) != 0 || isForce { // 修改
|
||||
err = GetPurchaseHandler(model.VendorIDJD).UpdateCategory(cat, userName)
|
||||
} else if (cat.JdSyncStatus & model.SyncFlagDeletedMask) != 0 {
|
||||
err = GetPurchaseHandler(model.VendorIDJD).DeleteCategory(cat, userName)
|
||||
}
|
||||
if err == nil {
|
||||
cat.JdSyncStatus = 0
|
||||
_, err = dao.UpdateEntity(db, cat, model.FieldJdSyncStatus)
|
||||
}
|
||||
if err != nil {
|
||||
break
|
||||
}
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
func (v *VendorSync) SyncStore(db *dao.DaoDB, vendorID int, store *model.Store, isForce bool, userName string) (err error) {
|
||||
var (
|
||||
storeMaps []*model.StoreMap
|
||||
)
|
||||
if db == nil {
|
||||
db = dao.GetDB()
|
||||
}
|
||||
err = dao.GetEntities(db, &storeMaps, utils.Params2Map(model.FieldStoreID, store.ID), true)
|
||||
if err == nil {
|
||||
// globals.SugarLogger.Debug(utils.Format4Output(store, false))
|
||||
copiedStore := *store
|
||||
for _, storeMap := range storeMaps {
|
||||
if (vendorID == -1 || storeMap.VendorID == vendorID) && (isForce || storeMap.SyncStatus != 0) {
|
||||
copiedStore.Status = mergeStoreStatus(store.Status, storeMap.Status)
|
||||
if err = GetPurchaseHandler(storeMap.VendorID).UpdateStore(storeMap.VendorStoreID, &copiedStore, userName); err == nil {
|
||||
storeMap.SyncStatus = 0
|
||||
dao.UpdateEntity(db, storeMap, model.FieldSyncStatus)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user