按价格区间筛选 1.1 需求分析 点击搜索面板上的价格区间,实现按价格筛选 1.1 前端代码 1.1.1 前端控制层 (1)修改 pinyougou-search-web 的 searchController.js 搜索条件的定义

$scope.searchMap={'keywords':'','category':'','brand':'','spec':{},'price':'' };//搜索条件封装对象 (2)修改 pinyougou-search-web 的 searchController.js 添加搜索项和删除搜索项的方法

//添加搜索项
 
$scope.addSearchItem=function(key,value){
if(key=='category'  ||  key=='brand'  ||  key=='price'){//如果点击的是分类或品×××
 
$scope.searchMap[key]=value;
 
}else{//如果是规格
 
$scope.searchMap.spec[key]=value;
 
}
 
$scope.search();
 
}
 
//移除复合搜索条件
 
$scope.removeSearchItem=function(key){
 
if(key=="category"  ||    key=="brand"  ||  key=='price'){//如果是分类或品×××
 
$scope.searchMap[key]="";
 
}else{//否则是规格
 
delete  $scope.searchMap.spec[key];//移除此属性
 
}
 
$scope.search();
 
}

1.1.1 页面 (1)修改页面 search.html ,在标签上调用方法

<ul  class="type-list"  ng-if="searchMap.price==''">
 
<li>
 
<a  ng-click="addSearchItem('price','0-500')">0-500 元</a>
 
</li>
<li>
 
<a  ng-click="addSearchItem('price','500-1000')">500-1000 元</a>
 
</li>
 
<li>
 
<a  ng-click="addSearchItem('price','1000-1500')">1000-1500 元</a>
 
</li>
 
<li>
 
<a  ng-click="addSearchItem('price','1500-2000')">1500-2000 元</a>
 
</li>
 
<li>
 
<a  ng-click="addSearchItem('price','2000-3000')">2000-3000 元  </a>
 
</li>
 
<li>
 
<a  ng-click="addSearchItem('price','3000-*')">3000 元以上</a>
 
</li>
 
</ul>

(2)修改 search.html,增加面包屑

<        li        class="tag" ng-if="searchMap.price!=''" ng-click="removeSearchItem('price')">价格:[/size][/font][/align][font=微软雅黑][size=3]{{searchMap.price}}<i    class="sui-icon  icon-tb-close"></i></li>

1.1 后端代码 修改 pinyougou-search-service 的 ItemSearchServiceImpl.java

/**
 
* 根据关键字搜索列表
*@param  keywords
 
 
*@return
 
 
*/
 
 
private  Map  searchList(Map  searchMap){
 
 
......
 
//1.1 关键字查询.....
 
//1.2 按分类筛选.....
 
//1.3 按品×××筛选.....
 
//1.4 过滤规格......
 
//1.5 按价格筛选.....
 
if(!"".equals(searchMap.get("price"))){
 
 
String[]  price  =  ((String)  searchMap.get("price")).split("-");
 
if(!price[0].equals("0")){//如果区间起点不等于 0 Criteria  filterCriteria=new
Criteria("item_price").greaterThanEqual(price[0]);
 
 
FilterQuery  filterQuery=new  SimpleFilterQuery(filterCriteria); query.addFilterQuery(filterQuery);
}
 
if(!price[1].equals("*")){//如果区间终点不等于* Criteria  filterCriteria=new
Criteria("item_price").lessThanEqual(price[1]);
 
 
FilterQuery  filterQuery=new  SimpleFilterQuery(filterCriteria); query.addFilterQuery(filterQuery);
}