创建商品,自动推导分类
This commit is contained in:
@@ -159,7 +159,7 @@ func AddCategory(ctx *jxcontext.Context, cat *model.SkuCategory, userName string
|
||||
return nil, errors.New("Level3的分类其父分类必须为Level2分类")
|
||||
}
|
||||
}
|
||||
if catsByName, err := dao.GetCategoriesByName(db, cat.Name); err == nil && len(catsByName) > 0 {
|
||||
if catsByName, err := dao.GetCategoriesByName(db, cat.Name, ""); err == nil && len(catsByName) > 0 {
|
||||
return nil, fmt.Errorf("已有分类名:[%v],分类名不允许重复!", cat.Name)
|
||||
} else if err != nil {
|
||||
return nil, err
|
||||
@@ -1146,6 +1146,40 @@ type aa struct {
|
||||
ExdSkuID string `json:"exdSkuID"`
|
||||
}
|
||||
|
||||
// 根据名称获取商品分类[京东]
|
||||
func getCategoryByName(name string) string {
|
||||
handler, _ := partner.GetPurchasePlatformFromVendorID(model.VendorIDJD).(partner.IPurchasePlatformStoreSkuHandler)
|
||||
vendorCategoryId, _ := handler.GetSkuCategoryIdByName(beego.AppConfig.DefaultString("jdOrgCode", "320406"), name)
|
||||
return vendorCategoryId
|
||||
}
|
||||
|
||||
// 获取抖音商品分类[抖音]
|
||||
func getCategoryByImg(img string) string {
|
||||
handler, _ := partner.GetPurchasePlatformFromVendorID(model.VendorIDDD).(partner.IPurchasePlatformStoreSkuHandler)
|
||||
vendorCategoryId, _ := handler.GetSkuCategoryIdByName("57939570", img)
|
||||
return vendorCategoryId
|
||||
}
|
||||
|
||||
// 根据平台返回的分类id,获取本地绑定的映射分类id
|
||||
func getJDCategoryLoadingLocalCategoryReflex(jdCategoryId, jdsCategoryID, ebaiCategoryID, mtwmCategoryID string) (string, string, string) {
|
||||
cats, err := dao.GetCategoriesByName(dao.GetDB(), "", jdCategoryId)
|
||||
if len(cats) == 0 || err != nil {
|
||||
globals.SugarLogger.Errorf("%v", fmt.Errorf("根据京东分类id设置美团/饿了么分类错误:%d,%v", len(cats), err))
|
||||
return jdsCategoryID, ebaiCategoryID, mtwmCategoryID
|
||||
} else {
|
||||
if jdsCategoryID == "" && cats[0].JdsCategoryID != 0 {
|
||||
jdsCategoryID = utils.Int64ToStr(cats[0].JdsCategoryID)
|
||||
}
|
||||
if ebaiCategoryID == "" && cats[0].EbaiCategoryID != 0 {
|
||||
ebaiCategoryID = utils.Int64ToStr(cats[0].EbaiCategoryID)
|
||||
}
|
||||
if mtwmCategoryID == "" && cats[0].MtwmCategoryID != 0 {
|
||||
mtwmCategoryID = utils.Int64ToStr(cats[0].MtwmCategoryID)
|
||||
}
|
||||
}
|
||||
return jdsCategoryID, ebaiCategoryID, mtwmCategoryID
|
||||
}
|
||||
|
||||
func updateOrCreateSkuVendorCategoryMap(db *dao.DaoDB, ctx *jxcontext.Context, nameID int, payload map[string]interface{}, skuNameExt *model.SkuNameExt, isDelete bool) (flag bool) {
|
||||
if isDelete {
|
||||
skuVendorCatMaps, _ := dao.GetSkuVendorCategoryMaps(db, []int{nameID}, nil, nil)
|
||||
@@ -1171,82 +1205,81 @@ func updateOrCreateSkuVendorCategoryMap(db *dao.DaoDB, ctx *jxcontext.Context, n
|
||||
dao.CreateEntity(db, skuVendorCatMap)
|
||||
}
|
||||
}
|
||||
|
||||
// 京东的推荐分类id,可能是创建商品时用户添加的,如果用户没添加则,在平台获取京东的分类id
|
||||
// 在本地平台分类id和系统分类id的绑定表当中获取当前京东id对应系统i对应的美团和饿了么id
|
||||
// 将此id的值回填给当前的值!
|
||||
jdCategoryId := ""
|
||||
jdsCategoryID := ""
|
||||
ebaiCategoryID := ""
|
||||
mtwmCategoryID := ""
|
||||
ddCategoryID := ""
|
||||
if skuNameExt != nil {
|
||||
if skuNameExt.JdCategoryID != "" {
|
||||
updateOrCreate(model.VendorIDJD, nameID, skuNameExt.JdCategoryID)
|
||||
flag = true
|
||||
} /*else {
|
||||
handler, _ := partner.GetPurchasePlatformFromVendorID(model.VendorIDJD).(partner.IPurchasePlatformStoreSkuHandler)
|
||||
vendorCategoryId, _ := handler.GetSkuCategoryIdByName(beego.AppConfig.DefaultString("jdOrgCode", "320406"), skuNameExt.Name)
|
||||
if vendorCategoryId != "" {
|
||||
updateOrCreate(model.VendorIDJD, nameID, skuNameExt.JdCategoryID)
|
||||
flag = true
|
||||
}
|
||||
}*/
|
||||
|
||||
if skuNameExt.JdsCategoryID != "" {
|
||||
updateOrCreate(model.VendorIDJDShop, nameID, skuNameExt.JdsCategoryID)
|
||||
flag = true
|
||||
}
|
||||
if skuNameExt.EbaiCategoryID != "" {
|
||||
updateOrCreate(model.VendorIDEBAI, nameID, skuNameExt.EbaiCategoryID)
|
||||
flag = true
|
||||
}
|
||||
if skuNameExt.MtwmCategoryID != "" {
|
||||
updateOrCreate(model.VendorIDMTWM, nameID, skuNameExt.MtwmCategoryID)
|
||||
flag = true
|
||||
jdCategoryId = skuNameExt.JdCategoryID
|
||||
} else {
|
||||
|
||||
jdCategoryId = getCategoryByName(skuNameExt.Name)
|
||||
}
|
||||
|
||||
if jdCategoryId != "" && jdCategoryId != "0" {
|
||||
jdsCategoryID, ebaiCategoryID, mtwmCategoryID = getJDCategoryLoadingLocalCategoryReflex(jdCategoryId, skuNameExt.JdsCategoryID, skuNameExt.EbaiCategoryID, skuNameExt.MtwmCategoryID)
|
||||
} else {
|
||||
jdsCategoryID = skuNameExt.JdsCategoryID
|
||||
ebaiCategoryID = skuNameExt.EbaiCategoryID
|
||||
mtwmCategoryID = skuNameExt.MtwmCategoryID
|
||||
}
|
||||
|
||||
if skuNameExt.DdCategoryID != "" {
|
||||
updateOrCreate(model.VendorIDDD, nameID, skuNameExt.DdCategoryID)
|
||||
flag = true
|
||||
} /*else {
|
||||
handler, _ := partner.GetPurchasePlatformFromVendorID(model.VendorIDDD).(partner.IPurchasePlatformStoreSkuHandler)
|
||||
ddCategoryID = skuNameExt.DdCategoryID
|
||||
} else {
|
||||
// 抖音是根据商品图片获取商品分类的!
|
||||
imgs := fmt.Sprintf("%s|%s|%s|%s|%s|%s", skuNameExt.DescImg, skuNameExt.Img, skuNameExt.Img2, skuNameExt.Img3, skuNameExt.Img4, skuNameExt.Img5)
|
||||
vendorCategoryId, _ := handler.GetSkuCategoryIdByName("57939570", imgs)
|
||||
if vendorCategoryId != "" {
|
||||
updateOrCreate(model.VendorIDDD, nameID, skuNameExt.JdCategoryID)
|
||||
flag = true
|
||||
}
|
||||
}*/
|
||||
ddCategoryID = getCategoryByImg(imgs)
|
||||
}
|
||||
} else {
|
||||
if payload["jdCategoryID"] != nil {
|
||||
updateOrCreate(model.VendorIDJD, nameID, payload["jdCategoryID"].(string))
|
||||
flag = true
|
||||
} /*else {
|
||||
handler, _ := partner.GetPurchasePlatformFromVendorID(model.VendorIDJD).(partner.IPurchasePlatformStoreSkuHandler)
|
||||
vendorCategoryId, _ := handler.GetSkuCategoryIdByName(beego.AppConfig.DefaultString("jdOrgCode", "320406"), skuNameExt.Name)
|
||||
if vendorCategoryId != "" {
|
||||
updateOrCreate(model.VendorIDJD, nameID, skuNameExt.JdCategoryID)
|
||||
flag = true
|
||||
}
|
||||
}*/
|
||||
if payload["jdsCategoryID"] != nil {
|
||||
updateOrCreate(model.VendorIDJDShop, nameID, payload["jdsCategoryID"].(string))
|
||||
flag = true
|
||||
jdCategoryId = payload["jdCategoryID"].(string)
|
||||
} else {
|
||||
jdCategoryId = getCategoryByName(payload["name"].(string))
|
||||
}
|
||||
if payload["ebaiCategoryID"] != nil {
|
||||
updateOrCreate(model.VendorIDEBAI, nameID, payload["ebaiCategoryID"].(string))
|
||||
flag = true
|
||||
}
|
||||
if payload["mtwmCategoryID"] != nil {
|
||||
updateOrCreate(model.VendorIDMTWM, nameID, payload["mtwmCategoryID"].(string))
|
||||
flag = true
|
||||
|
||||
if jdCategoryId != "" {
|
||||
jdsCategoryID, ebaiCategoryID, mtwmCategoryID = getJDCategoryLoadingLocalCategoryReflex(jdCategoryId, payload["jdsCategoryID"].(string), payload["ebaiCategoryID"].(string), payload["mtwmCategoryID"].(string))
|
||||
} else {
|
||||
jdsCategoryID = payload["jdsCategoryID"].(string)
|
||||
ebaiCategoryID = payload["ebaiCategoryID"].(string)
|
||||
mtwmCategoryID = payload["mtwmCategoryID"].(string)
|
||||
}
|
||||
|
||||
if payload["ddCategoryID"] != nil {
|
||||
updateOrCreate(model.VendorIDDD, nameID, payload["ddCategoryID"].(string))
|
||||
flag = true
|
||||
} /*else {
|
||||
handler, _ := partner.GetPurchasePlatformFromVendorID(model.VendorIDDD).(partner.IPurchasePlatformStoreSkuHandler)
|
||||
imgs := fmt.Sprintf("%s,%s,%s,%s,%s,%s", skuNameExt.DescImg, skuNameExt.Img, skuNameExt.Img2, skuNameExt.Img3, skuNameExt.Img4, skuNameExt.Img5)
|
||||
vendorCategoryId, _ := handler.GetSkuCategoryIdByName("57939570", imgs)
|
||||
if vendorCategoryId != "" {
|
||||
updateOrCreate(model.VendorIDDD, nameID, skuNameExt.JdCategoryID)
|
||||
flag = true
|
||||
}
|
||||
}*/
|
||||
ddCategoryID = payload["ddCategoryID"].(string)
|
||||
} else {
|
||||
imgs := fmt.Sprintf("%s|%s|%s|%s|%s|%s", skuNameExt.DescImg, skuNameExt.Img, skuNameExt.Img2, skuNameExt.Img3, skuNameExt.Img4, skuNameExt.Img5)
|
||||
ddCategoryID = getCategoryByImg(imgs)
|
||||
}
|
||||
}
|
||||
|
||||
if jdsCategoryID != "" {
|
||||
updateOrCreate(model.VendorIDJDShop, nameID, jdsCategoryID)
|
||||
flag = true
|
||||
}
|
||||
if ebaiCategoryID != "" {
|
||||
updateOrCreate(model.VendorIDEBAI, nameID, ebaiCategoryID)
|
||||
flag = true
|
||||
}
|
||||
if mtwmCategoryID != "" {
|
||||
updateOrCreate(model.VendorIDMTWM, nameID, mtwmCategoryID)
|
||||
flag = true
|
||||
}
|
||||
if ddCategoryID != "" {
|
||||
updateOrCreate(model.VendorIDDD, nameID, ddCategoryID)
|
||||
flag = true
|
||||
}
|
||||
if jdCategoryId != "" {
|
||||
updateOrCreate(model.VendorIDJD, nameID, jdCategoryId)
|
||||
flag = true
|
||||
}
|
||||
|
||||
}
|
||||
return flag
|
||||
}
|
||||
|
||||
@@ -50,7 +50,7 @@ func DeleteSkuNamePlace(db *DaoDB, nameID int, placeCodes []int) (num int64, err
|
||||
return ExecuteSQL(db, sql, sqlParams...)
|
||||
}
|
||||
|
||||
func GetCategoriesByName(db *DaoDB, name string) (cats []*model.SkuCategory, err error) {
|
||||
func GetCategoriesByName(db *DaoDB, name string, jdCategoryId string) (cats []*model.SkuCategory, err error) {
|
||||
sql := `
|
||||
SELECT t1.*
|
||||
FROM sku_category t1
|
||||
@@ -62,6 +62,11 @@ func GetCategoriesByName(db *DaoDB, name string) (cats []*model.SkuCategory, err
|
||||
sql += " AND t1.name = ?"
|
||||
params = append(params, name)
|
||||
}
|
||||
|
||||
if jdCategoryId != "" {
|
||||
sql += " AND t1.jd_category_id = ?"
|
||||
params = append(params, jdCategoryId)
|
||||
}
|
||||
return cats, GetRows(db, &cats, sql, params)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user