- 重构GetSkusCategories与GetStoreCategories

This commit is contained in:
gazebo
2019-05-25 13:05:21 +08:00
parent d6cb45c9bb
commit 195866712b
3 changed files with 113 additions and 94 deletions

View File

@@ -35,44 +35,49 @@ func (p *PurchaseHandler) SyncStoreCategory(ctx *jxcontext.Context, parentTask t
task := tasksch.NewParallelTask(fmt.Sprintf("美团外卖SyncStoreCategory step2, level=%d", level), nil, ctx,
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.EnableMtwmStoreWrite {
if catInfo.MtwmSyncStatus&model.SyncFlagDeletedMask != 0 { // 删除
if catInfo.MtwmSyncStatus&model.SyncFlagNewMask == 0 && catInfo.MtwmID != "" {
globals.SugarLogger.Debugf("RetailCatDelete vendorStoreID:%s, MtwmID:%s", vendorStoreID, catInfo.MtwmID)
err = api.MtwmAPI.RetailCatDelete(vendorStoreID, catInfo.MtwmID)
catInfo := batchItemList[0].(*dao.SkuStoreCatInfo)
storeCatMap := &model.StoreSkuCategoryMap{}
storeCatMap.ID = catInfo.MapID
if catInfo.StoreCatSyncStatus&model.SyncFlagDeletedMask != 0 { // 删除
if catInfo.StoreCatSyncStatus&model.SyncFlagNewMask == 0 && !dao.IsVendorThingIDEmpty(catInfo.VendorCatID) {
globals.SugarLogger.Debugf("RetailCatDelete vendorStoreID:%s, MtwmID:%s", vendorStoreID, catInfo.VendorCatID)
if globals.EnableMtwmStoreWrite {
err = api.MtwmAPI.RetailCatDelete(vendorStoreID, catInfo.VendorCatID)
}
} else if catInfo.MtwmSyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreSkuModifiedMask) != 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")
}
globals.SugarLogger.Debugf("RetailCatUpdate vendorStoreID:%s, originName:%s, catName:%s, subCatName:%s, seq:%d", vendorStoreID, originName, catName, subCatName, catInfo.Seq)
if err = api.MtwmAPI.RetailCatUpdate(vendorStoreID, originName, catName, subCatName, catInfo.Seq); err == nil {
catInfo.MtwmID = catInfo.CatName
updateFields = append(updateFields, dao.GetVendorThingIDStructField(model.VendorNames[model.VendorIDMTWM]))
}
} else if catInfo.StoreCatSyncStatus&(model.SyncFlagNewMask|model.SyncFlagStoreSkuModifiedMask) != 0 { // 新增
catName := catInfo.Name
subCatName := ""
originName := ""
if catInfo.StoreCatSyncStatus&model.SyncFlagNewMask == 0 {
originName = catInfo.VendorCatID
}
if level == 2 {
originName = catInfo.ParentCatName
catName = catInfo.ParentCatName
subCatName = catInfo.Name
if catInfo.StoreCatSyncStatus&model.SyncFlagNewMask == 0 {
originName = catInfo.VendorCatID
catName = catInfo.Name
subCatName = ""
}
}
if catName == "" {
panic("catName is empty")
}
globals.SugarLogger.Debugf("RetailCatUpdate vendorStoreID:%s, originName:%s, catName:%s, subCatName:%s, seq:%d", vendorStoreID, originName, catName, subCatName, catInfo.Seq)
if globals.EnableMtwmStoreWrite {
err = api.MtwmAPI.RetailCatUpdate(vendorStoreID, originName, catName, subCatName, catInfo.Seq)
}
if err == nil {
storeCatMap.MtwmID = catInfo.Name
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...)
storeCatMap.MtwmSyncStatus = 0
_, err = dao.UpdateEntity(db2, storeCatMap, updateFields...)
}
return nil, err
}, catList)
@@ -258,7 +263,10 @@ func (p *PurchaseHandler) SyncStoreSkus(ctx *jxcontext.Context, parentTask tasks
storeSkuBind.ID = skuItem.BindID
if skuItem.NameID == 0 || skuItem.StoreSkuSyncStatus&model.SyncFlagDeletedMask != 0 {
if skuItem.StoreSkuSyncStatus&model.SyncFlagNewMask == 0 && !dao.IsVendorThingIDEmpty(skuItem.VendorSkuID) {
err = ignoreNoAppFoodErr(api.MtwmAPI.RetailDelete(vendorStoreID, skuItem.VendorSkuID))
if globals.EnableWscStoreWrite {
err = api.MtwmAPI.RetailDelete(vendorStoreID, skuItem.VendorSkuID)
}
err = ignoreNoAppFoodErr(err)
}
if err == nil {
storeSkuBind.DeletedAt = time.Now()
@@ -312,10 +320,11 @@ func (p *PurchaseHandler) SyncStoreSkus(ctx *jxcontext.Context, parentTask tasks
skus[0]["weight"] = skuItem.Weight // weight字段仅限服饰鞋帽、美妆、日用品、母婴、生鲜果蔬、生活超市下的便利店/超市门店品类的商家使用
}
if globals.EnableMtwmStoreWrite {
if err = api.MtwmAPI.RetailBatchInitData(vendorStoreID, foodDataList); err == nil {
storeSkuBind.MtwmID = int64(skuItem.SkuID)
updateFields = append(updateFields, model.FieldMtwmID)
}
err = api.MtwmAPI.RetailBatchInitData(vendorStoreID, foodDataList)
}
if err == nil {
storeSkuBind.MtwmID = int64(skuItem.SkuID)
updateFields = append(updateFields, model.FieldMtwmID)
}
}
} else {