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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

按价格区间筛选
1.1 需求分析
点击搜索面板上的价格区间,实现按价格筛选
1.1 前端代码
1.1.1 前端控制层
(1)修改 pinyougou-search-web 的 searchController.js        搜索条件的定义
[AppleScript] 纯文本查看 复制代码
$scope.searchMap={'keywords':'','category':'','brand':'','spec':{},'price':''  };//搜索条件封装对象
2修改 pinyougou-search-web searchController.js        加搜方法
[AppleScript] 纯文本查看 复制代码
//添加搜索项

$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 ,在标签上调用方法
[AppleScript] 纯文本查看 复制代码
<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,增加面包屑
[AppleScript] 纯文本查看 复制代码
<        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
[AppleScript] 纯文本查看 复制代码
/**

* 根据关键字搜索列表
*@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);
}


0 个回复

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