GetSkusWithVendor,GetSkuCategoryWithVendor

apimanager的bug修改
This commit is contained in:
gazebo
2019-12-12 10:59:55 +08:00
parent ccc0d3dfda
commit 248a9299ce
3 changed files with 39 additions and 35 deletions

View File

@@ -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)

View File

@@ -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},

View File

@@ -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: