diff --git a/business/jxstore/promotion/jd_promotion.go b/business/jxstore/promotion/jd_promotion.go index be756f5a7..f9a8f21a5 100644 --- a/business/jxstore/promotion/jd_promotion.go +++ b/business/jxstore/promotion/jd_promotion.go @@ -575,18 +575,23 @@ func GetJdPromotions(ctx *jxcontext.Context, keyword string, params map[string]i sql += " AND t1.type = ?" sqlParams = append(sqlParams, params["type"].(int)) } - if params["storeID"] != nil { - sql += " AND (SELECT COUNT(*) FROM promotion_store tt1 WHERE tt1.promotion_id = t1.id AND tt1.store_id = ?) > 0" - sqlParams = append(sqlParams, params["storeID"].(int)) + if params["storeID"] != nil || params["cityCode"] != nil { + sql += " AND (SELECT COUNT(*) FROM promotion_store tt1 " + if params["cityCode"] != nil { + sql += " JOIN store st ON st.id = tt1.store_id AND st.city_code = ?" + sqlParams = append(sqlParams, params["cityCode"].(int)) + } + sql += "WHERE tt1.promotion_id = t1.id" + if params["storeID"] != nil { + sql += " AND tt1.store_id = ?" + sqlParams = append(sqlParams, params["storeID"].(int)) + } + sql += ") > 0" } if params["skuID"] != nil { sql += " AND (SELECT COUNT(*) FROM promotion_sku tt1 WHERE tt1.promotion_id = t1.id AND tt1.sku_id = ?) > 0" sqlParams = append(sqlParams, params["skuID"].(int)) } - if params["cityCode"] != nil { - sql += " AND (SELECT COUNT(*) FROM promotion_store tt1 JOIN store st ON st.id = tt1.store_id AND st.city_code = ? WHERE tt1.promotion_id = t1.id) > 0" - sqlParams = append(sqlParams, params["cityCode"].(int)) - } sql += ` GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12