GetSkusWithVendor中取商品城市的bug修复
This commit is contained in:
@@ -84,10 +84,11 @@ func syncCategories(ctx *jxcontext.Context, db *dao.DaoDB, parentTask tasksch.IT
|
|||||||
}
|
}
|
||||||
|
|
||||||
func SyncCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorIDs []int, appOrgCodes []string, catIDs []int, isAsync bool) (hint string, err error) {
|
func SyncCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorIDs []int, appOrgCodes []string, catIDs []int, isAsync bool) (hint string, err error) {
|
||||||
globals.SugarLogger.Debugf("SyncCategories catIDs:%v", catIDs)
|
globals.SugarLogger.Debugf("SyncCategories vendorIDs:%v, appOrgCodes:%v, catIDs:%v", vendorIDs, appOrgCodes, catIDs)
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
catList, err := dao.GetSkuCategoryWithVendor(db, vendorIDs, appOrgCodes, -1, catIDs, true)
|
catList, err := dao.GetSkuCategoryWithVendor(db, vendorIDs, appOrgCodes, -1, catIDs, true)
|
||||||
if err == nil && len(catList) > 0 {
|
if err == nil && len(catList) > 0 {
|
||||||
|
// TODO 同一平台不同账号会有影响needSyncParentIDs,暂不处理
|
||||||
var needSyncParentIDs []int
|
var needSyncParentIDs []int
|
||||||
for _, cat := range catList {
|
for _, cat := range catList {
|
||||||
if cat.Level == 2 && cat.ParentVendorCatID == "" {
|
if cat.Level == 2 && cat.ParentVendorCatID == "" {
|
||||||
@@ -128,7 +129,7 @@ func SyncCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorIDs
|
|||||||
}
|
}
|
||||||
|
|
||||||
func SyncSkus(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorIDs []int, appOrgCodes []string, nameIDs, skuIDs []int, isAsync bool) (hint string, err error) {
|
func SyncSkus(ctx *jxcontext.Context, parentTask tasksch.ITask, vendorIDs []int, appOrgCodes []string, nameIDs, skuIDs []int, isAsync bool) (hint string, err error) {
|
||||||
globals.SugarLogger.Debugf("SyncSkus nameIDs:%v, skuIDs:%v", nameIDs, skuIDs)
|
globals.SugarLogger.Debugf("SyncSkus vendorIDs:%v, appOrgCodes:%v, nameIDs:%v, skuIDs:%v", vendorIDs, appOrgCodes, nameIDs, skuIDs)
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
skuList, err := dao.GetSkusWithVendor(db, vendorIDs, appOrgCodes, nameIDs, skuIDs, true)
|
skuList, err := dao.GetSkusWithVendor(db, vendorIDs, appOrgCodes, nameIDs, skuIDs, true)
|
||||||
if err == nil && len(skuList) > 0 {
|
if err == nil && len(skuList) > 0 {
|
||||||
|
|||||||
@@ -8,16 +8,17 @@ import (
|
|||||||
"git.rosy.net.cn/jx-callback/globals"
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
)
|
)
|
||||||
|
|
||||||
type tStoreSkuSyncInfo2 struct {
|
|
||||||
StoreSkuSyncInfo
|
|
||||||
VendorPlaceCode string
|
|
||||||
}
|
|
||||||
|
|
||||||
type SkuCategoryWithVendor struct {
|
type SkuCategoryWithVendor struct {
|
||||||
*model.SkuCategory
|
*model.SkuCategory
|
||||||
MapList []*model.ThingMap `json:"mapList"`
|
MapList []*model.ThingMap `json:"mapList"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type SkuNamePlace struct {
|
||||||
|
model.Place
|
||||||
|
NameID int `orm:"column(name_id)" json:"nameID"`
|
||||||
|
SkuID int `orm:"column(sku_id)" json:"skuID"`
|
||||||
|
}
|
||||||
|
|
||||||
func GetSellCities(db *DaoDB, nameID int, vendorID int) (cities []*model.Place, err error) {
|
func GetSellCities(db *DaoDB, nameID int, vendorID int) (cities []*model.Place, err error) {
|
||||||
cities = []*model.Place{}
|
cities = []*model.Place{}
|
||||||
sql := `
|
sql := `
|
||||||
@@ -211,7 +212,7 @@ func GetSkuCategoryWithVendor(db *DaoDB, vendorIDs []int, appOrgCodes []string,
|
|||||||
`
|
`
|
||||||
sqlParams = append(sqlParams, model.ThingTypeCategory, utils.DefaultTimeValue)
|
sqlParams = append(sqlParams, model.ThingTypeCategory, utils.DefaultTimeValue)
|
||||||
if mustDirty {
|
if mustDirty {
|
||||||
sql += " AND t1m.sync_status <> 0"
|
sql += " AND t1m.sync_status IS NOT NULL AND t1m.sync_status <> 0"
|
||||||
} else {
|
} else {
|
||||||
sql += " AND t1.deleted_at = ?"
|
sql += " AND t1.deleted_at = ?"
|
||||||
sqlParams = append(sqlParams, utils.DefaultTimeValue)
|
sqlParams = append(sqlParams, utils.DefaultTimeValue)
|
||||||
@@ -253,8 +254,6 @@ func GetSkusWithVendor(db *DaoDB, vendorIDs []int, appOrgCodes []string, nameIDs
|
|||||||
IF(t12.resource_type IS NULL OR t12.resource_type <> ?, t2.img2, '') img2,
|
IF(t12.resource_type IS NULL OR t12.resource_type <> ?, t2.img2, '') img2,
|
||||||
t2.desc_img,
|
t2.desc_img,
|
||||||
|
|
||||||
t5.jd_code vendor_place_code,
|
|
||||||
|
|
||||||
t3.jd_category_id vendor_vendor_cat_id,
|
t3.jd_category_id vendor_vendor_cat_id,
|
||||||
|
|
||||||
t3m.sync_status cat_sync_status,
|
t3m.sync_status cat_sync_status,
|
||||||
@@ -281,15 +280,13 @@ func GetSkusWithVendor(db *DaoDB, vendorIDs []int, appOrgCodes []string, nameIDs
|
|||||||
LEFT JOIN sku_category t3 ON t3.id = t2.category_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 = ?
|
LEFT JOIN thing_map t3m ON t3m.thing_id = t3.id AND t3m.thing_type = ? AND t3m.deleted_at = ?
|
||||||
AND t3m.vendor_id = t1m.vendor_id AND t3m.vendor_org_code = t1m.vendor_org_code
|
AND t3m.vendor_id = t1m.vendor_id AND t3m.vendor_org_code = t1m.vendor_org_code
|
||||||
LEFT JOIN sku_name_place_bind t4 ON t2.is_global = 0 AND t4.name_id = t1.name_id
|
|
||||||
LEFT JOIN place t5 ON t5.code = t4.place_code
|
|
||||||
LEFT JOIN data_resource t11 ON t11.main_url = t2.img
|
LEFT JOIN data_resource t11 ON t11.main_url = t2.img
|
||||||
LEFT JOIN data_resource t12 ON t12.main_url = t2.img2
|
LEFT JOIN data_resource t12 ON t12.main_url = t2.img2
|
||||||
WHERE 1 = 1
|
WHERE 1 = 1
|
||||||
`
|
`
|
||||||
sqlParams = append(sqlParams, model.ThingTypeCategory, utils.DefaultTimeValue)
|
sqlParams = append(sqlParams, model.ThingTypeCategory, utils.DefaultTimeValue)
|
||||||
if mustDirty {
|
if mustDirty {
|
||||||
sql += " AND t1m.sync_status <> 0"
|
sql += " AND t1m.sync_status IS NOT NULL AND t1m.sync_status <> 0"
|
||||||
} else {
|
} else {
|
||||||
sql += " AND t1.deleted_at = ?"
|
sql += " AND t1.deleted_at = ?"
|
||||||
sqlParams = append(sqlParams, utils.DefaultTimeValue)
|
sqlParams = append(sqlParams, utils.DefaultTimeValue)
|
||||||
@@ -304,18 +301,45 @@ func GetSkusWithVendor(db *DaoDB, vendorIDs []int, appOrgCodes []string, nameIDs
|
|||||||
}
|
}
|
||||||
sql += " ORDER BY t1.seq"
|
sql += " ORDER BY t1.seq"
|
||||||
|
|
||||||
var list []*tStoreSkuSyncInfo2
|
if err = GetRows(db, &skuList, sql, sqlParams...); err == nil {
|
||||||
if err = GetRows(db, &list, sql, sqlParams...); err == nil {
|
skuPlaceList, err2 := GetSkuNamePlaces(db, nameIDs, skuIDs)
|
||||||
skuMap := make(map[int]*StoreSkuSyncInfo)
|
if err = err2; err == nil {
|
||||||
for _, v := range list {
|
skuPlaceMap := make(map[int][]*SkuNamePlace)
|
||||||
if skuMap[v.SkuID] == nil {
|
for _, v := range skuPlaceList {
|
||||||
skuMap[v.SkuID] = &v.StoreSkuSyncInfo
|
skuPlaceMap[v.SkuID] = append(skuPlaceMap[v.SkuID], v)
|
||||||
skuList = append(skuList, &v.StoreSkuSyncInfo)
|
|
||||||
}
|
}
|
||||||
if !IsVendorThingIDEmpty(v.VendorPlaceCode) {
|
for _, v := range skuList {
|
||||||
skuMap[v.SkuID].SellCities = append(skuMap[v.SkuID].SellCities, v.VendorPlaceCode)
|
if v.IsGlobal == 0 {
|
||||||
|
for _, v2 := range skuPlaceMap[v.SkuID] {
|
||||||
|
// 京东到家
|
||||||
|
v.SellCities = append(v.SellCities, utils.Int2Str(v2.JdCode))
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return skuList, err
|
return skuList, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetSkuNamePlaces(db *DaoDB, nameIDs, skuIDs []int) (skuPlaceList []*SkuNamePlace, err error) {
|
||||||
|
sql := `
|
||||||
|
SELECT
|
||||||
|
t4.*,
|
||||||
|
t2.id sku_id, t2.name_id
|
||||||
|
FROM sku t2
|
||||||
|
JOIN sku_name_place_bind t3 ON t3.name_id = t2.name_id
|
||||||
|
JOIN place t4 ON t4.code = t3.place_code
|
||||||
|
WHERE t2.deleted_at = ?
|
||||||
|
`
|
||||||
|
sqlParams := []interface{}{utils.DefaultTimeValue}
|
||||||
|
if len(nameIDs) > 0 {
|
||||||
|
sql += " AND t2.name_id IN (" + GenQuestionMarks(len(nameIDs)) + ")"
|
||||||
|
sqlParams = append(sqlParams, nameIDs)
|
||||||
|
}
|
||||||
|
if len(skuIDs) > 0 {
|
||||||
|
sql += " AND t2.id IN (" + GenQuestionMarks(len(skuIDs)) + ")"
|
||||||
|
sqlParams = append(sqlParams, skuIDs)
|
||||||
|
}
|
||||||
|
err = GetRows(db, &skuPlaceList, sql, sqlParams...)
|
||||||
|
return skuPlaceList, err
|
||||||
|
}
|
||||||
|
|||||||
@@ -54,9 +54,13 @@ var (
|
|||||||
Jd2OrgCode string
|
Jd2OrgCode string
|
||||||
|
|
||||||
IsUseThingMap bool
|
IsUseThingMap bool
|
||||||
|
|
||||||
|
OutputDebugMsgLevel int
|
||||||
)
|
)
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
|
OutputDebugMsgLevel = 1
|
||||||
|
|
||||||
logs.SetLogFuncCallDepth(3)
|
logs.SetLogFuncCallDepth(3)
|
||||||
beego.BConfig.Log.AccessLogs = true
|
beego.BConfig.Log.AccessLogs = true
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user