id	summary	reporter	owner	description	type	status	priority	milestone	component	version	resolution	keywords	cc	due_date
130	排行榜优化BaseCountManager.searchTopProduct	chenchongqi		"== 原版 ==
[attachment:报价库排行榜拼sql的方法.txt]

== 业务逻辑 ==
* 输入
 * 品牌id、小类id、小类id(多个逗号链接)、查询条数、图片类型、图片数、是否上升最快、
 * 屏蔽的品牌列表、固定位置列表、属性名称列表、属性值列表
     
* 方法的处理逻辑：
 * 品牌id，小类id(兼容多小类)筛选，
 * 如果价格0是100即全国价，直接用PDL_PRODUCT.price做范围筛选，否则用PP_PRICE.price（用地区价筛选有必要么？如果有必要能否拆分两种不同的查询）
 * 取图片类型
 * 排除品牌
 * 广告位处理


     
* 输出：
 * list->
 * PDL_PRODUCT.*, 
 * PDL_PRODUCT_TYPE.(name, parent_id, forum_id, forum_url, pub_url),
 * PDL_PRODUCT_PIC.*,
 * PP_PRICE.price,
 * eml_price.(min_price, max_price)

== 使用场合 ==
* web_product/service2009/brand_product_top.jsp searchTopProducts(countForm,null,null) PDL_PRODUCT
* web_product/bigBrand/brand_repair_pbox.jsp searchTopProducts(countForm,null,null) PDL_PRODUCT
* web_product/template2009v2/brand_top10_hotest_product.jsp searchTopProducts(countForm, null, null) PDL_PRODUCT
* web_product/cms/compare_array_json.jsp searchTopProducts(countForm,properties,valueMap) smallTypeId,全国报价范围 PDL_PRODUCT
* web_product/cms/dc_top_2.jsp searchTopProducts(countForm,properties,valueMap) smallTypeId,picType,String items=""价格,1,0-2000;价格,1,2000-3000;价格,1,3000-99999"" PDL_PRODUCT
* web_product/cms/hlxk_top_sort.jsp searchTopProducts(countForm,properties,valueMap) smallTypeId,picType,areaid,price1-2 PDL_PRODUCT,PDL_PRODUCT_PIC.pic_path
* OuterAction 提供给所有产品库动态排行榜页面使用

----
优化思路：
1. 拆分后的方法，应只返回型号id列表，在使用的地方各自组装VO
2. 提取广告部分
3. 提取品牌屏蔽部分
4. 查全国报价和其他地区的分开(有没有必要按地区价格排？业务上要理清楚，如果仅是极少场合需要用到，没必要放在一个广泛使用的方法里)
6. 只查单个小类,多个小类的查询很少，可以查多次
7. 放弃图片筛选条件，既然是热门排行榜，图片应该是比较齐全的，不加图片筛选项，让运营补充图片。
8. 防止滥用，把太多不通用的业务需求集成到了一个“通用”的方法里，仅仅是因为查询条件相似。
9. 排行榜数据使用频率高，范围广，应考虑生成冗余表
----
初步拆分：
public List<Product> buildProductList(long[] productIds[])
public long[] searchTopProductIds(long brandId, long smallTypeId, int size)
public long[] searchTopProductIds(long brandId, long smallTypeId, int priceMax, int priceMin, int size)
public long[] searchTopProductIds(long brandId, long smallTypeId, int areaId, int priceMax, int priceMin, int size)
public long[] filterBrandIds(long[] productIds, long[] bandBrandIds[])
public long[] filterAdIds(long[] productIds, String[] fixedIds, String[] sequenceIds)"	优化	new	major		产品库	产品库3.0		排行榜		
