饿鲜达分类同步优化

This commit is contained in:
苏尹岚
2020-02-17 16:08:44 +08:00
parent 3bb8aa3415
commit 94bce18432
5 changed files with 33 additions and 22 deletions

View File

@@ -132,9 +132,11 @@ func AddCategory(ctx *jxcontext.Context, cat *model.SkuCategory, userName string
dao.Rollback(db) dao.Rollback(db)
return nil, err return nil, err
} }
if err = OnCreateThing(ctx, db, nil, int64(cat.ID), model.ThingTypeCategory); err != nil { if cat.IsExdSpec == model.NO {
dao.Rollback(db) if err = OnCreateThing(ctx, db, nil, int64(cat.ID), model.ThingTypeCategory); err != nil {
return nil, err dao.Rollback(db)
return nil, err
}
} }
dao.Commit(db) dao.Commit(db)
outCat = cat outCat = cat
@@ -191,9 +193,11 @@ func UpdateCategory(ctx *jxcontext.Context, categoryID int, payload map[string]i
dao.Rollback(db) dao.Rollback(db)
return 0, err return 0, err
} }
if err = OnUpdateThing(ctx, db, nil, int64(categoryID), model.ThingTypeCategory); err != nil { if cat.IsExdSpec == model.NO {
dao.Rollback(db) if err = OnUpdateThing(ctx, db, nil, int64(categoryID), model.ThingTypeCategory); err != nil {
return 0, err dao.Rollback(db)
return 0, err
}
} }
dao.Commit(db) dao.Commit(db)

View File

@@ -84,6 +84,11 @@ func SyncStoreCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo
storeCatMap := &model.StoreSkuCategoryMap{} storeCatMap := &model.StoreSkuCategoryMap{}
storeCatMap.ID = catInfo.MapID storeCatMap.ID = catInfo.MapID
var failedList []*partner.StoreSkuInfoWithErr var failedList []*partner.StoreSkuInfoWithErr
if catInfo.IsExdSpec == model.YES {
if vendorID == model.VendorIDJD || vendorID == model.VendorIDMTWM {
return nil, err
}
}
if model.IsSyncStatusDelete(catInfo.CatSyncStatus) { // 删除 if model.IsSyncStatusDelete(catInfo.CatSyncStatus) { // 删除
if model.IsSyncStatusDelete(catInfo.CatSyncStatus) && !dao.IsVendorThingIDEmpty(catInfo.VendorCatID) { if model.IsSyncStatusDelete(catInfo.CatSyncStatus) && !dao.IsVendorThingIDEmpty(catInfo.VendorCatID) {
err = handler.DeleteStoreCategory(ctx, storeID, vendorStoreID, catInfo.VendorCatID, level) err = handler.DeleteStoreCategory(ctx, storeID, vendorStoreID, catInfo.VendorCatID, level)

View File

@@ -395,6 +395,11 @@ const (
MaxVendorPricePercentage = 400 MaxVendorPricePercentage = 400
) )
const (
YES = 1 //通用
NO = 0
)
func IsPurchaseVendorExist(vendorID int) bool { func IsPurchaseVendorExist(vendorID int) bool {
_, ok := VendorNames[vendorID] _, ok := VendorNames[vendorID]
return ok && vendorID >= VendorIDPurchaseBegin && vendorID <= VendorIDPurchaseEnd return ok && vendorID >= VendorIDPurchaseBegin && vendorID <= VendorIDPurchaseEnd

View File

@@ -151,8 +151,9 @@ type SkuCategory struct {
Status int8 `orm:"default(1)" json:"status"` //分类状态0表示禁用1表示启用 Status int8 `orm:"default(1)" json:"status"` //分类状态0表示禁用1表示启用
Img string `orm:"size(512)" json:"img"` //分类图片 Img string `orm:"size(512)" json:"img"` //分类图片
ExdName string `json:"exdName"` //饿鲜达对应分类名 ExdName string `json:"exdName"` //饿鲜达对应分类名
ExdSeq int `json:"exdSeq"` ExdSeq int `json:"exdSeq"`
IsExdSpec int `json:"isExdSpec"` //是否是饿鲜达特有新建的分类
// JdID int64 `orm:"column(jd_id);index" json:"jdID"` // 这个是指商家自己的商品类别在京东平台上的ID // JdID int64 `orm:"column(jd_id);index" json:"jdID"` // 这个是指商家自己的商品类别在京东平台上的ID
// JdSyncStatus int8 `orm:"default(2)" json:"jdSyncStatus"` // JdSyncStatus int8 `orm:"default(2)" json:"jdSyncStatus"`
} }

View File

@@ -24,8 +24,9 @@ const (
var ( var (
sensitiveWordRegexp = regexp.MustCompile(`商品名称中含有敏感词(\[.*\])`) sensitiveWordRegexp = regexp.MustCompile(`商品名称中含有敏感词(\[.*\])`)
categoryCheck = map[string]string{ categoryCheck = map[int]string{
"赠品专区": "赠品专区", 175: "赠品专区",
18: "烧烤吧台",
} }
) )
@@ -80,10 +81,9 @@ func getCheckExdStoreNameAndSeq(storeID int, storeCat *dao.SkuStoreCatInfo) (nam
return storeCat.Name, storeCat.Seq, false return storeCat.Name, storeCat.Seq, false
} }
if strings.Contains(store.Name, model.ExdStoreName) { if strings.Contains(store.Name, model.ExdStoreName) {
if categoryCheck[storeCat.ExdName] != "" { if categoryCheck[storeCat.ID] != "" {
return storeCat.ExdName, storeCat.ExdSeq, true return storeCat.ExdName, storeCat.ExdSeq, true
} }
return storeCat.ExdName, storeCat.ExdSeq, false
} else { } else {
return storeCat.Name, storeCat.Seq, false return storeCat.Name, storeCat.Seq, false
} }
@@ -93,11 +93,9 @@ func getCheckExdStoreNameAndSeq(storeID int, storeCat *dao.SkuStoreCatInfo) (nam
func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) { func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) {
var vendorCatID int64 var vendorCatID int64
if globals.EnableEbaiStoreWrite { if globals.EnableEbaiStoreWrite {
catName, catSeq, _ := getCheckExdStoreNameAndSeq(storeID, storeCat) if catName, catSeq, isCheck := getCheckExdStoreNameAndSeq(storeID, storeCat); !isCheck {
// if isCheck { vendorCatID, err = api.EbaiAPI.ShopCategoryCreate(utils.Int2Str(storeID), utils.Str2Int64WithDefault(storeCat.ParentVendorCatID, 0), formatCatName(catName), jxCatSeq2Ebai(catSeq))
// return nil }
// }
vendorCatID, err = api.EbaiAPI.ShopCategoryCreate(utils.Int2Str(storeID), utils.Str2Int64WithDefault(storeCat.ParentVendorCatID, 0), formatCatName(catName), jxCatSeq2Ebai(catSeq))
} else { } else {
vendorCatID = jxutils.GenFakeID() vendorCatID = jxutils.GenFakeID()
} }
@@ -107,11 +105,9 @@ func (p *PurchaseHandler) CreateStoreCategory(ctx *jxcontext.Context, storeID in
func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) { func (p *PurchaseHandler) UpdateStoreCategory(ctx *jxcontext.Context, storeID int, vendorStoreID string, storeCat *dao.SkuStoreCatInfo) (err error) {
if globals.EnableEbaiStoreWrite { if globals.EnableEbaiStoreWrite {
catName, catSeq, _ := getCheckExdStoreNameAndSeq(storeID, storeCat) if catName, catSeq, isCheck := getCheckExdStoreNameAndSeq(storeID, storeCat); !isCheck {
// if isCheck { err = api.EbaiAPI.ShopCategoryUpdate(utils.Int2Str(storeID), utils.Str2Int64WithDefault(storeCat.VendorCatID, 0), formatCatName(catName), jxCatSeq2Ebai(catSeq))
// return nil }
// }
err = api.EbaiAPI.ShopCategoryUpdate(utils.Int2Str(storeID), utils.Str2Int64WithDefault(storeCat.VendorCatID, 0), formatCatName(catName), jxCatSeq2Ebai(catSeq))
// todo, 饿百将一个分类重复改名也会报分类名重复错特殊处理一下不过因为GetStoreCategory其实会拉取所有的门店分类是比较耗时的操作 // todo, 饿百将一个分类重复改名也会报分类名重复错特殊处理一下不过因为GetStoreCategory其实会拉取所有的门店分类是比较耗时的操作
if utils.IsErrMatch(err, "1", []string{"分类名称已经存在"}) { if utils.IsErrMatch(err, "1", []string{"分类名称已经存在"}) {
if cat, err2 := p.GetStoreCategory(ctx, storeID, vendorStoreID, storeCat.Name); err2 == nil { if cat, err2 := p.GetStoreCategory(ctx, storeID, vendorStoreID, storeCat.Name); err2 == nil {