From 248a9299cea1611c981c3d2ad2c94a93ed01475b Mon Sep 17 00:00:00 2001 From: gazebo Date: Thu, 12 Dec 2019 10:59:55 +0800 Subject: [PATCH] =?UTF-8?q?GetSkusWithVendor,GetSkuCategoryWithVendor=20ap?= =?UTF-8?q?imanager=E7=9A=84bug=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/model/dao/sku.go | 62 ++++++++++++++-------------- business/partner/purchase/jd/sku2.go | 9 ++-- globals/api/apimanager/apimanager.go | 3 ++ 3 files changed, 39 insertions(+), 35 deletions(-) diff --git a/business/model/dao/sku.go b/business/model/dao/sku.go index a55b11581..3edd64d28 100644 --- a/business/model/dao/sku.go +++ b/business/model/dao/sku.go @@ -190,23 +190,10 @@ func GetSkuCategoryWithVendor(db *DaoDB, vendorIDs []int, appOrgCodes []string, t1pm.vendor_thing_id parent_vendor_cat_id, t1pm.sync_status parent_cat_sync_status FROM sku_category t1 - LEFT JOIN thing_map t1m ON t1m.thing_id = t1.id AND t1m.thing_type = ? AND t1m.deleted_at = ? - LEFT JOIN sku_category t1p ON t1p.id = t1.parent_id - LEFT JOIN thing_map t1pm ON t1pm.thing_id = t1p.id AND t1pm.thing_type = ? AND t1m.deleted_at = ? - AND t1pm.vendor_id = t1m.vendor_id AND t1pm.vendor_org_code = t1m.vendor_org_code - WHERE 1 = 1 - ` + LEFT JOIN thing_map t1m ON t1m.thing_id = t1.id AND t1m.thing_type = ? AND t1m.deleted_at = ?` sqlParams := []interface{}{ model.ThingTypeCategory, utils.DefaultTimeValue, - model.ThingTypeCategory, - utils.DefaultTimeValue, - } - if mustDirty { - sql += " AND t1m.sync_status <> 0" - } else { - sql += " AND t1.deleted_at = ?" - sqlParams = append(sqlParams, utils.DefaultTimeValue) } if len(vendorIDs) > 0 { sql += " AND t1m.vendor_id IN (" + GenQuestionMarks(len(vendorIDs)) + ")" @@ -216,6 +203,19 @@ func GetSkuCategoryWithVendor(db *DaoDB, vendorIDs []int, appOrgCodes []string, sql += " AND t1m.vendor_org_code IN (" + GenQuestionMarks(len(appOrgCodes)) + ")" sqlParams = append(sqlParams, appOrgCodes) } + sql += ` + LEFT JOIN sku_category t1p ON t1p.id = t1.parent_id + LEFT JOIN thing_map t1pm ON t1pm.thing_id = t1p.id AND t1pm.thing_type = ? AND t1m.deleted_at = ? + AND t1pm.vendor_id = t1m.vendor_id AND t1pm.vendor_org_code = t1m.vendor_org_code + WHERE 1 = 1 + ` + sqlParams = append(sqlParams, model.ThingTypeCategory, utils.DefaultTimeValue) + if mustDirty { + sql += " AND t1m.sync_status <> 0" + } else { + sql += " AND t1.deleted_at = ?" + sqlParams = append(sqlParams, utils.DefaultTimeValue) + } if len(catIDs) > 0 { sql += " AND t1.id IN (" + GenQuestionMarks(len(catIDs)) + ")" sqlParams = append(sqlParams, catIDs) @@ -261,7 +261,22 @@ func GetSkusWithVendor(db *DaoDB, vendorIDs []int, appOrgCodes []string, nameIDs t3m.vendor_thing_id vendor_cat_id FROM sku t1 - LEFT JOIN thing_map t1m ON t1m.thing_id = t1.id AND t1m.thing_type = ? AND t1m.deleted_at = ? + LEFT JOIN thing_map t1m ON t1m.thing_id = t1.id AND t1m.thing_type = ? AND t1m.deleted_at = ?` + sqlParams := []interface{}{ + model.MimeTypeGif, + model.MimeTypeGif, + model.ThingTypeSku, + utils.DefaultTimeValue, + } + if len(vendorIDs) > 0 { + sql += " AND t1m.vendor_id IN (" + GenQuestionMarks(len(vendorIDs)) + ")" + sqlParams = append(sqlParams, vendorIDs) + } + if len(appOrgCodes) > 0 { + sql += " AND t1m.vendor_org_code IN (" + GenQuestionMarks(len(appOrgCodes)) + ")" + sqlParams = append(sqlParams, appOrgCodes) + } + sql += ` JOIN sku_name t2 ON t2.id = t1.name_id LEFT JOIN sku_category t3 ON t3.id = t2.category_id LEFT JOIN thing_map t3m ON t3m.thing_id = t3.id AND t3m.thing_type = ? AND t3m.deleted_at = ? @@ -272,28 +287,13 @@ func GetSkusWithVendor(db *DaoDB, vendorIDs []int, appOrgCodes []string, nameIDs LEFT JOIN data_resource t12 ON t12.main_url = t2.img2 WHERE 1 = 1 ` - sqlParams := []interface{}{ - model.MimeTypeGif, - model.MimeTypeGif, - model.ThingTypeSku, - utils.DefaultTimeValue, - model.ThingTypeCategory, - utils.DefaultTimeValue, - } + sqlParams = append(sqlParams, model.ThingTypeCategory, utils.DefaultTimeValue) if mustDirty { sql += " AND t1m.sync_status <> 0" } else { sql += " AND t1.deleted_at = ?" sqlParams = append(sqlParams, utils.DefaultTimeValue) } - if len(vendorIDs) > 0 { - sql += " AND t1m.vendor_id IN (" + GenQuestionMarks(len(vendorIDs)) + ")" - sqlParams = append(sqlParams, vendorIDs) - } - if len(appOrgCodes) > 0 { - sql += " AND t1m.vendor_org_code IN (" + GenQuestionMarks(len(appOrgCodes)) + ")" - sqlParams = append(sqlParams, appOrgCodes) - } if len(nameIDs) > 0 { sql += " AND t1.name_id IN (" + GenQuestionMarks(len(nameIDs)) + ")" sqlParams = append(sqlParams, nameIDs) diff --git a/business/partner/purchase/jd/sku2.go b/business/partner/purchase/jd/sku2.go index 857cc5c33..c3d58ada5 100644 --- a/business/partner/purchase/jd/sku2.go +++ b/business/partner/purchase/jd/sku2.go @@ -108,6 +108,7 @@ func (p *PurchaseHandler) ReorderCategories2(ctx *jxcontext.Context, vendorOrgCo } func (p *PurchaseHandler) getVendorCategories(level int, pid int64) (vendorCats []*model.SkuVendorCategory, err error) { + // 得到平台的分类,不需要指定分账号 cats, err := getAPI("").QueryChildCategoriesForOP(pid) if err != nil { return nil, err @@ -223,7 +224,7 @@ func (p *PurchaseHandler) GetSkus(ctx *jxcontext.Context, vendorOrgCode string, for k, v := range skuList { batchSkuNameList[k] = vendorSku2Jx(v) } - setSkuNameListPic(batchSkuNameList) + setSkuNameListPic(vendorOrgCode, batchSkuNameList) skuNameList = append(skuNameList, batchSkuNameList...) } if len(skuList) < param.PageSize { @@ -234,14 +235,14 @@ func (p *PurchaseHandler) GetSkus(ctx *jxcontext.Context, vendorOrgCode string, return skuNameList, err } -func setSkuNameListPic(skuNameList []*partner.SkuNameInfo) []*partner.SkuNameInfo { +func setSkuNameListPic(vendorOrgCode string, skuNameList []*partner.SkuNameInfo) []*partner.SkuNameInfo { jdSkuIDs := make([]int64, len(skuNameList)) for k, v := range skuNameList { jdSkuIDs[k] = utils.Str2Int64(v.SkuList[0].VendorSkuID) } imgMap := make(map[int64]*jdapi.ImgHandleQueryResult) - if imgList, err2 := getAPI("").QueryListBySkuIds(&jdapi.QueryListBySkuIdsParam{ + if imgList, err2 := getAPI(vendorOrgCode).QueryListBySkuIds(&jdapi.QueryListBySkuIdsParam{ SkuIDs: jdSkuIDs, }); err2 == nil { for _, v := range imgList { @@ -265,7 +266,7 @@ func setSkuNameListPic(skuNameList []*partner.SkuNameInfo) []*partner.SkuNameInf task := tasksch.NewParallelTask("jd setSkuNameListPic", nil, jxcontext.AdminCtx, func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { jdSkuID := batchItemList[0].(int64) - imgList, err := getAPI("").GetSkuPageImageInfo(jdSkuID) + imgList, err := getAPI(vendorOrgCode).GetSkuPageImageInfo(jdSkuID) if err == nil && len(imgList) > 0 { retVal = [][]string{ []string{utils.Int64ToStr(jdSkuID), imgList[0].Big}, diff --git a/globals/api/apimanager/apimanager.go b/globals/api/apimanager/apimanager.go index 5091e46ac..9f6c11e87 100644 --- a/globals/api/apimanager/apimanager.go +++ b/globals/api/apimanager/apimanager.go @@ -31,6 +31,9 @@ func (a *APIManager) GetAPI(vendorID int, appOrgCode string) (pfAPI interface{}) switch vendorID { case model.VendorIDJD: pfAPI = api.JdAPI + if appOrgCode != "" && appOrgCode == globals.Jd2OrgCode { + pfAPI = api.Jd2API + } case model.VendorIDMTWM: pfAPI = api.MtwmAPI case model.VendorIDEBAI: