- refactor partner.

This commit is contained in:
gazebo
2018-09-21 10:57:00 +08:00
parent d10869cef4
commit 804c9c146c
14 changed files with 150 additions and 173 deletions

View File

@@ -37,15 +37,6 @@ func Init() {
}
func (v *VendorSync) SyncCategory(db *dao.DaoDB, categoryID int, isForce bool, userName string) (err error) {
if db == nil {
db = dao.GetDB()
}
// v.LoopSingleStoreVendors(db, "SyncCategory", userName, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
// storeMap := batchItemList[0].(*model.StoreMap)
// handler := GetPurchaseHandler(storeMap.VendorID).(partner.ISingleStoreHandler)
// return nil, nil
// })
err = v.LoopMultiStoresVendors(db, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
multiStoresHandler := batchItemList[0].(partner.IMultipleStoresHandler)
var cats []*model.SkuCategory
@@ -57,11 +48,11 @@ func (v *VendorSync) SyncCategory(db *dao.DaoDB, categoryID int, isForce bool, u
tasksch.RunTask("", func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
cat := batchItemList[0].(*model.SkuCategory)
if (cat.JdSyncStatus & model.SyncFlagDeletedMask) != 0 { //删除
err = multiStoresHandler.DeleteCategory(cat, userName)
err = multiStoresHandler.DeleteCategory(db, cat, userName)
} else if (cat.JdSyncStatus&model.SyncFlagNewMask) != 0 || isForce { // 新增
err = multiStoresHandler.CreateCategory(cat, userName)
err = multiStoresHandler.CreateCategory(db, cat, userName)
} else if (cat.JdSyncStatus & model.SyncFlagModifiedMask) != 0 { // 修改
err = multiStoresHandler.UpdateCategory(cat, userName)
err = multiStoresHandler.UpdateCategory(db, cat, userName)
}
if err == nil {
cat.JdSyncStatus = 0
@@ -75,16 +66,21 @@ func (v *VendorSync) SyncCategory(db *dao.DaoDB, categoryID int, isForce bool, u
return err
}
func (v *VendorSync) SyncReorderCategories(db *dao.DaoDB, categoryID int, isForce bool, userName string) (err error) {
// todo
if handler := GetPurchaseHandler(model.VendorIDJD); handler != nil {
err = handler.(partner.IMultipleStoresHandler).ReorderCategories(db, categoryID, userName)
}
return nil
}
func (v *VendorSync) SyncStore(db *dao.DaoDB, vendorID, storeID int, isForce bool, userName string) (err error) {
globals.SugarLogger.Debugf("SyncStore, storeID:%d", storeID)
if db == nil {
db = dao.GetDB()
}
err = v.LoopStoreMap(db, storeID, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
storeMap := batchItemList[0].(*model.StoreMap)
if (vendorID == -1 || vendorID == storeMap.VendorID) && (isForce || storeMap.SyncStatus != 0) {
if handler := GetPurchaseHandler(storeMap.VendorID); handler != nil {
if err = handler.UpdateStore(storeID, userName); err == nil {
if err = handler.UpdateStore(db, storeID, userName); err == nil {
storeMap.SyncStatus = 0
_, err = dao.UpdateEntity(db, storeMap, model.FieldSyncStatus)
}
@@ -96,14 +92,6 @@ func (v *VendorSync) SyncStore(db *dao.DaoDB, vendorID, storeID int, isForce boo
}
func (v *VendorSync) SyncSku(db *dao.DaoDB, nameID, skuID int, isForce bool, userName string) (err error) {
if db == nil {
db = dao.GetDB()
}
// v.LoopSingleStoreVendors(db, "SyncSku", userName, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
// storeMap := batchItemList[0].(*model.StoreMap)
// handler := GetPurchaseHandler(storeMap.VendorID).(partner.ISingleStoreHandler)
// return nil, nil
// })
err = v.LoopMultiStoresVendors(db, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
multiStoresHandler := batchItemList[0].(partner.IMultipleStoresHandler)
var skuList []*model.Sku
@@ -120,12 +108,12 @@ func (v *VendorSync) SyncSku(db *dao.DaoDB, nameID, skuID int, isForce bool, use
if (skuID == -1 || skuID == sku.ID) && (isForce || sku.JdSyncStatus != 0) {
updateFields := []string{model.FieldJdSyncStatus}
if sku.JdSyncStatus&model.SyncFlagDeletedMask != 0 { // 删除
err = multiStoresHandler.CreateSku(sku, userName)
err = multiStoresHandler.CreateSku(db, sku, userName)
updateFields = append(updateFields, model.FieldJdID)
} else if sku.JdSyncStatus&model.SyncFlagNewMask != 0 { // 新增
err = multiStoresHandler.DeleteSku(sku, userName)
err = multiStoresHandler.DeleteSku(db, sku, userName)
} else if sku.JdSyncStatus&model.SyncFlagModifiedMask != 0 { // 修改
err = multiStoresHandler.UpdateSku(sku, userName)
err = multiStoresHandler.UpdateSku(db, sku, userName)
}
if err == nil {
sku.JdSyncStatus = 0
@@ -143,13 +131,10 @@ func (v *VendorSync) SyncSku(db *dao.DaoDB, nameID, skuID int, isForce bool, use
//
func (v *VendorSync) SyncStoreSku(db *dao.DaoDB, storeID int, skuIDs []int, isForce bool, userName string) (err error) {
globals.SugarLogger.Debug("SyncStoreSku")
if db == nil {
db = dao.GetDB()
}
err = v.LoopStoreMap(db, storeID, func(batchItemList []interface{}, params ...interface{}) (interface{}, error) {
storeMap := batchItemList[0].(*model.StoreMap)
if handler := GetPurchaseHandler(storeMap.VendorID); handler != nil {
err = handler.SyncStoreSku(storeID, skuIDs, isForce, userName)
err = handler.SyncStoreSkus(db, []int{storeID}, skuIDs, isForce, userName)
}
return nil, err
})