A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

过滤查询
7.1 需求分析
根据上一步构建的查询条件,实现分类、品牌和规格的过滤查询
7.1 代码实现
7.1.1 分类过滤
修改 pinyougou-search-service 工程的 SearchItemServiceImpl.java
[AppleScript] 纯文本查看 复制代码
/**

*根据关键字搜索列表

*@param  keywords


*@return


*/


private  Map  searchList(Map  searchMap){


.......

//1.1 关键字查询......

//1.2 按分类筛选
if(!"".equals(searchMap.get("category"))){ Criteria  filterCriteria=new
Criteria("item_category").is(searchMap.get("category"));


FilterQuery  filterQuery=new  SimpleFilterQuery(filterCriteria); query.addFilterQuery(filterQuery);
}

//高亮显示处理.....

}
7.1.1 品牌过滤
修改 pinyougou-search-service 工程的 SearchItemServiceImpl.java
[AppleScript] 纯文本查看 复制代码
/**

*根据关键字搜索列表

*@param  keywords


*@return


*/


private  Map  searchList(Map  searchMap){


.......

//1.1 关键字查询

.......

//1.2 按分类筛选

.......

//1.3 按品牌筛选
if(!"".equals(searchMap.get("brand"))){ Criteria  filterCriteria=new
Criteria("item_brand").is(searchMap.get("brand"));
[AppleScript] 纯文本查看 复制代码
FilterQuery  filterQuery=new  SimpleFilterQuery(filterCriteria); query.addFilterQuery(filterQuery);
}

//高亮显示处理...............

}
7.1.1 规格过滤
实现思路:规格有多项,需要循环过滤。循环规格查询条件,根据 key 得到域名城,根据
value 设置过滤条件。
修改 pinyougou-search-service 工程的 SearchItemServiceImpl.java
[AppleScript] 纯文本查看 复制代码
/**

*根据关键字搜索列表

*@param  keywords


*@return


*/


private  Map  searchList(Map  searchMap){


......

//1.1 关键字查询

....

//1.2 按分类筛选

.....

//1.3 按品牌筛选

......

//1.4 过滤规格
[AppleScript] 纯文本查看 复制代码
if(searchMap.get("spec")!=null){


Map<String,String>  specMap=  (Map)  searchMap.get("spec");


for(String  key:specMap.keySet()  ){


Criteria  filterCriteria=new  Criteria("item_spec_"+key).is(  specMap.get(key)  ); FilterQuery  filterQuery=new  SimpleFilterQuery(filterCriteria); query.addFilterQuery(filterQuery);
}


}

//高亮显示处理.....

}
根据分类查询品牌规格列表
[AppleScript] 纯文本查看 复制代码
@Override

public  Map<String,  Object>  search(Map  searchMap)  { Map<String,Object>  map=new  HashMap<>();
//1.按关键字查询(高亮显示)

......

//2.根据关键字查询商品分类

......

//3.查询品牌和规格列表

String  categoryName=(String)searchMap.get("category");

if(!"".equals(categoryName)){//如果有分类名称
map.putAll(searchBrandAndSpecList(categoryName));

}else{//如果没有分类名称,按照第一个查询

if(categoryList.size()>0){ map.putAll(searchBrandAndSpecList(categoryList.get(0)));
}


}


return  map;


}

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马