条件过滤查询(搜索)

过滤条件功能分析:

怎么回事小老弟,还不去敲代码

一.分类\品牌\规格的过滤

1.功能要求:在我们的搜索页中,当我们输入一个关键字,相关商品的属性(品牌,分类,规格等等)就会出现在下面.我们要做的就是根据商品的这些属性来就行筛选.要达到的效果是:我们点击品牌\分类\规格,这些筛选条件会出现在面包屑中,同时相关属性的选择框会消失,通过一步步的筛选就能得到想要的商品

2.业务思考:怎么做这个功能呢

前台搜索条件的构建

①:首先我们要把商品分类\品牌\规格以map的形式放入一个集合中,方便我们做面包屑时使用,需要注意的一点是,我们的规格是一个集合(因为有子规格);所以我们在进行具体的业务之前需要先定义出来这个集合:{'关键字':'','商品分类':'','品牌':'','规格':{}}

②:下一步就是增加搜索选项了,我们之前有一个搜索的Map集合是searchMap,我们现在要做的就是往这个集合中添加元素;由于商品分类和品牌列表是一样的,但是规格是不一样的,规格是集合的形式,所以在这里就要进行了一个判断---->我们定一个addSearchResult的方法,这个方法的参数是key和Value,也就是要添加的属性和属性值;我们再进行判断,如果key是商品分类或者品牌,我们就直接在searchMap(之前的搜索条件集合)中添加就行了;如果key是规格,我们就要再点上规格在进行添加;我们在这还要添加ng-if,为的是我们在查询时如果没有多余的属性,就不要显示,所以加了ng-if判断返回结果中所属属性的集合是不是空的,空的就不显示

③然后在页面上的商品分类\品牌\规格标签上分别绑定上方法,里面放入的是属性(比如分类就是category)和值,然后可以在面包屑的位置写上searchMap集合进行测试

④:接着就是处理面包屑了,在这里有一点要注意:就是我们的分类和品牌这两个属性是写死的,当我们没有点击分类或者品牌时,面包屑中是不能显示的(由于规格不能写死所以不用处理);我们采取的措施是用ng-if标签判断一下我们要处理的选项的集合是不是空的,只有不是空的才让它显示

⑤:我们可以添加搜索条件,那么我们也应该可以撤除搜索条件,就是我们可以移除面包屑中的搜索条件,换句话说就是我们可以有一个方法可以从searchMap集合中移除元素就行了,参照add方法再controller中增加移除方法,然后在页面找那个的搜索条件位置调用方法就行了

⑥:接下来就是隐藏查询面板的功能:这个功能是我们选择完一个选项后,就应该让这个选项框消失,想要达到这个效果也很容易,就是再在ng-if标签的后面再加一个判断就行了,但是这个判断是什么呢?我们想什么时候才让这个选择面板显示呢?就是搜索条件的集合里对应的属性没有值的时候就让它显示,一旦有值就表示用户已经点击了对应的选项,就可以隐藏了;注意:这和之前的根据查询结果隐藏面板的条件是&&的关系,需要写在一起;还要就是规格的判断时,让规格的对应选项为null,而分类和品牌的属性就要让对应的='',因为分类和品牌没有时是有占位符的

⑦:既然我们在前台添加或者删除了搜索条件,那么就应该执行响应的方法,再js的controller中添加或者移除添加时,要执行搜索方法,重新进行刷新搜索

后台过滤查询

①:我们在前台建立了搜索项,那么最终的过滤业务还是后台来执行;怎么执行这个业务逻辑呢?其实和关键字查询差不多,在关键字查询的后面再加上每个选项的判断就行了,在这个业务中主要是用SimpleFilterQuery这个类的对象进行条件过滤

②:我们添加了过滤条件后,就要在查询方法中修改查询品牌和规格列表,不过在真正执行业务之前,需要进行判断,先判断从搜索条件中获取的分类选项是不是空的,如果有值,就按这个分类选项进行查询;如果是空的就要从上面按照关键字查询的商品分类集合中的值进行查询,当然在这里面也要进行判断,只有这个集合的长度大于0时(有值时),才进行查询

二. 价格区间的过滤

1.功能要求: 我们这个价格区间的搜索呢也很常见,就是前台页面上,有多个价格区间,比如0-500,500-1000,1000-2000,....我们点击这些区间,就会增加搜索条件来帮我们进行商品的筛选

2.业务思考:

前台条件的构建:

这个功能和前面的分类品牌差不多,前台要做的就是把用户选中的价格区间传到后台,这里页面上的操作就不多叙述,注意就是:面包屑上不要忘了加上价格这个选项;还有就是js中的controller的搜索条件的集合中加上价格,增加和删除条件中也要加上价格这个选项

后台的业务逻辑

后台的和前面的逻辑也差不太多,就是我们要用一个数组来接收我们传进来的几个区间的最小价格和最大价格,用的是一个api,就是split("-"),返回的数组中,0号元素是最小值,1号元素是最大值;这个价格的过滤就复杂在下面:我们要在这进行两个判断,一个是看看最小结果是不是0,是0就不用进行下面的逻辑(其实就是为了做出0<**<=500而不影响其他几个区间判断的效果),如果不等于0,就加上过滤条件:大于最小价格;同理,对于最大价格也是这样操作,因为我们最后的区间是3000-*,后面是没有限制的,所以判断最大价格是不是*就可以了,是*不进行操作,让它只大于等于最小价格好了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 31,863评论 2 89
  • 1 上大学时候的我风风火火,雷厉风行的。有一次和同学逛街,后面来了一辆三轮车撞到同学腿上了,她当即疼哭了,弯着腰蹲...
    笑望舒阅读 963评论 0 1
  • 母亲在我19岁时去世了,当时我觉得我再也不会笑了。现在每当我想起她时,我都会微笑。 呵呵呵,写的太好了 股价反应了...
    戒定慧_ada8阅读 166评论 0 0
  • 不知不觉到2018将要翻篇,我的心中有深深的不舍,也有对2019深深的期待。 2018中考百日誓师后,在思考自己的...
    zxyw1109阅读 676评论 0 8
  • 昨晚我心血来潮想看看口碑很好的《请回答1988》,在此之前我一直是在别人的口中或是手机上推荐说它好看,但我一直都没...
    阿踔阅读 253评论 0 0