同步错误
This commit is contained in:
@@ -69,7 +69,7 @@ func SyncStoreCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo
|
|||||||
rootTask := tasksch.NewSeqTask(fmt.Sprintf("%s SyncStoreCategory step1", model.VendorChineseNames[vendorID]), ctx,
|
rootTask := tasksch.NewSeqTask(fmt.Sprintf("%s SyncStoreCategory step1", model.VendorChineseNames[vendorID]), ctx,
|
||||||
func(rootTask *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
func(rootTask *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
|
||||||
level := step + 1
|
level := step + 1
|
||||||
catList, err := dao.GetDirtyStoreCategories(db, vendorID, storeID, level)
|
catList, err := dao.GetDirtyStoreCategories(db, vendorID, storeID, level, skuIDs)
|
||||||
if len(catList) > 0 {
|
if len(catList) > 0 {
|
||||||
num += len(catList)
|
num += len(catList)
|
||||||
task := tasksch.NewParallelTask(fmt.Sprintf("%s SyncStoreCategory step2, level=%d", model.VendorChineseNames[vendorID], level),
|
task := tasksch.NewParallelTask(fmt.Sprintf("%s SyncStoreCategory step2, level=%d", model.VendorChineseNames[vendorID], level),
|
||||||
@@ -752,7 +752,7 @@ func amendAndPruneStoreStuff(ctx *jxcontext.Context, parentTask tasksch.ITask, v
|
|||||||
}
|
}
|
||||||
sku2Delete = nil
|
sku2Delete = nil
|
||||||
case 2:
|
case 2:
|
||||||
localCatList, err := dao.GetStoreCategories(db, vendorID, storeID, 0, false)
|
localCatList, err := dao.GetStoreCategories(db, vendorID, storeID, nil, 0, false)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -279,7 +279,7 @@ func GetSkusCategories(db *DaoDB, vendorID, storeID int, skuIDs []int, level int
|
|||||||
|
|
||||||
// 单门店模式厂商适用
|
// 单门店模式厂商适用
|
||||||
// 单纯的从已经创建的store_sku_category_map中,得到相关的同步信息
|
// 单纯的从已经创建的store_sku_category_map中,得到相关的同步信息
|
||||||
func GetStoreCategories(db *DaoDB, vendorID, storeID int, level int, mustDirty bool) (cats []*SkuStoreCatInfo, err error) {
|
func GetStoreCategories(db *DaoDB, vendorID, storeID int, skuIDs []int, level int, mustDirty bool) (cats []*SkuStoreCatInfo, err error) {
|
||||||
fieldPrefix := ConvertDBFieldPrefix(model.VendorNames[vendorID])
|
fieldPrefix := ConvertDBFieldPrefix(model.VendorNames[vendorID])
|
||||||
sql := `
|
sql := `
|
||||||
SELECT t4.*,
|
SELECT t4.*,
|
||||||
@@ -288,16 +288,29 @@ func GetStoreCategories(db *DaoDB, vendorID, storeID int, level int, mustDirty b
|
|||||||
t5p.id parent_map_id, t5p.%s_id parent_vendor_cat_id, t5p.%s_sync_status parent_cat_sync_status
|
t5p.id parent_map_id, t5p.%s_id parent_vendor_cat_id, t5p.%s_sync_status parent_cat_sync_status
|
||||||
FROM store_sku_category_map t5
|
FROM store_sku_category_map t5
|
||||||
JOIN sku_category t4 ON t5.category_id = t4.id AND t4.deleted_at = ?
|
JOIN sku_category t4 ON t5.category_id = t4.id AND t4.deleted_at = ?
|
||||||
|
`
|
||||||
|
sqlParams := []interface{}{
|
||||||
|
utils.DefaultTimeValue,
|
||||||
|
}
|
||||||
|
fieldPrefixParams := []interface{}{fieldPrefix, fieldPrefix, fieldPrefix, fieldPrefix}
|
||||||
|
if len(skuIDs) > 0 {
|
||||||
|
sql += `
|
||||||
|
JOIN (
|
||||||
|
SELECT DISTINCT b.category_id
|
||||||
|
FROM sku a
|
||||||
|
JOIN sku_name b ON a.name_id = b.id AND b.deleted_at = ?
|
||||||
|
WHERE 1=1
|
||||||
|
AND a.id IN (` + GenQuestionMarks(len(skuIDs)) + `)
|
||||||
|
AND a.deleted_at = ?
|
||||||
|
)t6 ON t6.category_id = t4.id
|
||||||
|
`
|
||||||
|
sqlParams = append(sqlParams, utils.DefaultTimeValue, skuIDs, utils.DefaultTimeValue)
|
||||||
|
}
|
||||||
|
sql += `
|
||||||
LEFT JOIN sku_category t4p ON t4.parent_id = t4p.id
|
LEFT JOIN sku_category t4p ON t4.parent_id = t4p.id
|
||||||
LEFT JOIN store_sku_category_map t5p ON t4p.id = t5p.category_id AND t5.store_id = t5p.store_id AND t5p.deleted_at = ?
|
LEFT JOIN store_sku_category_map t5p ON t4p.id = t5p.category_id AND t5.store_id = t5p.store_id AND t5p.deleted_at = ?
|
||||||
WHERE t5.store_id = ? AND t5.deleted_at = ?`
|
WHERE t5.store_id = ? AND t5.deleted_at = ?`
|
||||||
fieldPrefixParams := []interface{}{fieldPrefix, fieldPrefix, fieldPrefix, fieldPrefix}
|
sqlParams = append(sqlParams, utils.DefaultTimeValue, storeID, utils.DefaultTimeValue)
|
||||||
sqlParams := []interface{}{
|
|
||||||
utils.DefaultTimeValue,
|
|
||||||
utils.DefaultTimeValue,
|
|
||||||
storeID,
|
|
||||||
utils.DefaultTimeValue,
|
|
||||||
}
|
|
||||||
if mustDirty {
|
if mustDirty {
|
||||||
sql += " AND t5.%s_sync_status <> 0"
|
sql += " AND t5.%s_sync_status <> 0"
|
||||||
fieldPrefixParams = append(fieldPrefixParams, fieldPrefix)
|
fieldPrefixParams = append(fieldPrefixParams, fieldPrefix)
|
||||||
@@ -312,8 +325,8 @@ func GetStoreCategories(db *DaoDB, vendorID, storeID int, level int, mustDirty b
|
|||||||
return cats, err
|
return cats, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetDirtyStoreCategories(db *DaoDB, vendorID, storeID int, level int) (cats []*SkuStoreCatInfo, err error) {
|
func GetDirtyStoreCategories(db *DaoDB, vendorID, storeID int, level int, skuIDs []int) (cats []*SkuStoreCatInfo, err error) {
|
||||||
return GetStoreCategories(db, vendorID, storeID, level, true)
|
return GetStoreCategories(db, vendorID, storeID, skuIDs, level, true)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 以store_sku_bind为基础来做同步,正常情况下使用
|
// 以store_sku_bind为基础来做同步,正常情况下使用
|
||||||
|
|||||||
Reference in New Issue
Block a user