商品检索传入参数分析
商品查询页面如下

搜索框查询

首先我们可以根据搜索框的内容进行全文检索
查询方式: keywrod=xxx
分类查询

然后我们可以根据首页传入的三级分类的id进行商品查询
查询方式: catalog3Id=xxx
排序

因为排序方式可以根据多种方式进行查询 如综合排序 销量 价格 定义多个字段过于冗长 所以我们可以定义一个sort字段来进行不同的查询条件进行查询 排序条件有: saleCount(销量), hotScore(热销 也就是综合排序), skuPrice(价格)
查询方式: sort=查询条件_排序方式
如 销量查询 升序方式: sort=saleCount_asc
过滤
有货商品

显示商品是否有货
查询方式: hasStock=0/1
0表示有货 1表示无货
价格区间

根据价格区间进行查询 有多种查询方式 可以根据 0 - 500的价格区间进行查询 可以根据 500以上的价格区间查询 可以根据500以下的价格区间进行查询
商品属性

查询方式: skuPrice=上限_下限,
skuPrice=_下限,
skuPrice=上限,
品牌查询

品牌查询可以传入多个品牌
查询方式: brandId=品牌id&brandId=品牌id
商品属性

可以传入多个商品属性 每个商品属性也可以传入多个值 多个值直接用 : 分割开 可以传入多个
查询方式: attrs=几号属性_属性值1:属性值2&attrs=几号属性_属性值1:属性值2
例子: 比如搜索系统 系统为一号属性 搜android和苹果的商品 我们可以这样进行拼装
attrs=1_android:IOS
分页查询
如果商品过多 还要进行分页查询 将页码传入
查询方式pageNum=xxx

java封装entity
package com.lyra.mail.search.entity.vo;
import java.util.List;
public class SearchParam {
private String keyword;
private Long catalog3Id;
private String sort;
private Integer hasStock;
private String skuPrice;
private List<Long> brandId;
private List<String> attrs;
private Integer pageNum;
public Integer getPageNum() {
return pageNum;
}
public void setPageNum(Integer pageNum) {
this.pageNum = pageNum;
}
public String getKeyword() {
return keyword;
}
public void setKeyword(String keyword) {
this.keyword = keyword;
}
public Long getCatalog3Id() {
return catalog3Id;
}
public void setCatalog3Id(Long catalog3Id) {
this.catalog3Id = catalog3Id;
}
public String getSort() {
return sort;
}
public void setSort(String sort) {
this.sort = sort;
}
public Integer getHasStock() {
return hasStock;
}
public void setHasStock(Integer hasStock) {
this.hasStock = hasStock;
}
public String getSkuPrice() {
return skuPrice;
}
public void setSkuPrice(String skuPrice) {
this.skuPrice = skuPrice;
}
public List<Long> getBrandId() {
return brandId;
}
public void setBrandId(List<Long> brandId) {
this.brandId = brandId;
}
public List<String> getAttrs() {
return attrs;
}
public void setAttrs(List<String> attrs) {
this.attrs = attrs;
}
}
虽然道路是曲折的,但前途是光明的。

浙公网安备 33010602011771号