- check store_map

This commit is contained in:
gazebo
2018-10-24 14:54:20 +08:00
parent 7b6c9fd73a
commit 508a949006
4 changed files with 100 additions and 88 deletions

View File

@@ -29,23 +29,30 @@ func (p *PurchaseHandler) SyncStoresSkus(db *dao.DaoDB, storeIDs []int, skuIDs [
}
task := tasksch.RunManagedParallelTask("SyncStoresSkus", tasksch.NewParallelConfig().SetParallelCount(parallelCount), userName, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (interface{}, error) {
storeID := batchItemList[0].(int)
sqlParams := []interface{}{
sqlWhere := `
WHERE (t1.deleted_at = ? OR t1.jd_sync_status <> 0) AND t1.store_id = ?
`
sqlWhereParams := []interface{}{
utils.DefaultTimeValue,
storeID,
}
if skuIDs != nil && len(skuIDs) > 0 {
sqlWhere += " AND t1.sku_id IN (" + dao.GenQuestionMarks(len(skuIDs)) + ")"
sqlWhereParams = append(sqlWhereParams, skuIDs)
}
sql := `
SELECT t1.*, t2.price_percentage
FROM store_sku_bind t1
JOIN store_map t2 ON t1.store_id = t2.store_id
WHERE (t1.deleted_at = ? OR t1.jd_sync_status <> 0) AND t1.store_id = ?
`
if skuIDs != nil && len(skuIDs) > 0 {
sql += " AND t1.sku_id IN (" + dao.GenQuestionMarks(len(skuIDs)) + ")"
sqlParams = append(sqlParams, skuIDs)
}
JOIN store_map t2 ON t1.store_id = t2.store_id AND t2.vendor_id = ? AND t2.deleted_at = ?
` + sqlWhere
var storeSkus []*tStoreSkuBindExt
// globals.SugarLogger.Debug(sql, sqlParams)
if err = dao.GetRows(db, &storeSkus, sql, sqlParams); err == nil {
sqlParams := []interface{}{
model.VendorIDJD,
utils.DefaultTimeValue,
}
if err = dao.GetRows(db, &storeSkus, sql, append(sqlParams, sqlWhereParams...)...); err == nil {
outStationNo := utils.Int2Str(storeID)
task := tasksch.RunParallelTask("SyncStoresSkus inner", tasksch.NewParallelConfig().SetBatchSize(MaxSkuBatchSize), userName, func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (interface{}, error) {
var skuPriceInfoList []*jdapi.SkuPriceInfo
@@ -101,12 +108,8 @@ func (p *PurchaseHandler) SyncStoresSkus(db *dao.DaoDB, storeIDs []int, skuIDs [
sql := `
UPDATE store_sku_bind t1
SET t1.jd_sync_status = 0
WHERE (t1.deleted_at = ? OR t1.jd_sync_status <> 0) AND t1.store_id = ?
`
if skuIDs != nil && len(skuIDs) > 0 {
sql += " AND sku_id IN (" + dao.GenQuestionMarks(len(skuIDs)) + ")"
}
_, err = dao.ExecuteSQL(db, sql, sqlParams)
` + sqlWhere
_, err = dao.ExecuteSQL(db, sql, sqlWhereParams...)
}
}
return nil, err