00:00
接下来我们再来编写接口商品管理,商品管理跟SQ管理不同的是,商品管理在这检索的是SQ的信息,每个SQ的名字、图片,包括它的售价、销量,那其他详细信息呢,也可以展开它标题、副标题,这都是我们当时录的数据,那SQ管理呢,也可以参照我们接口文档,在接口文档里边呢,我们有一个叫SQ检索。发送product SQ info list请求,我们会携带上这些检索条件,主要这些检索条件包含我们分类的ID,包括我们品牌的名字,特别这有一个价格区间,然后呢,带上我们的模糊检索条件,那我们接下来就来写这个接口,我们来到SQ in for list里边,好,Controller sqfo的controller,我们来找SQ info controller这个list来修改一下这个请求,这个请求我们同样还是by condition,我们按照检索条件来进行分页查询的,好创建出这个方法。
01:01
我们为这个方法呢添加上实现这个方法,跟前面的这些普通检索方法一样,我先把这一块复制过来。不过我们的检索条件现在都得是动态的了,我们把这个好我过来。我们来看一下我们现在的检索条件,那现在条条件呢,多了一个价格区间的查询,那其他的还会携带上我们这些字段看一下,在这如果我来点击查询,来点击查询,那在这呢会额外携带这些数据,我们把这个都复制过来,CTRLC。来到我们这,那这些呢,K是模糊条件,这些是两个ID,主要这还有一个价格区间,同样我们先来进行判断,pers.get我们先来找到这个模糊检索条件不为空,我们才拼上相应的条件,好,我们把这个呢。就先来叫一个K,把这个先转过来,那其他的都要这么来获取,并且我们还要进行飞空判断,If string you.is empty,把这个key呢先拿过来。
02:13
我们判断它不为空的时候,我们来进行检索,其他的也都一样,我把这几个复制过来,那我们这个K有了,还有catalog ID catalog ID来判断它,还有我们的brand ID,品牌ID。我们还要判断这个,还有我们的价格的最小值,最大值,我们整个价格区间这个。我们来判断还有这个最大值CTRLC。好,我们把这个也拿来判断。好,我们还是先来。拼装我们这个模糊条件,拿到我们这个corry wrapper corry wrapper,我们先用一个and,我们都说了,为什么要先用一个and,因为这个and呢,它用括号把这个O条件括起来,好,我们就叫waper,这waper里边呢,是两个O条件,那per的第一个条件点E口是我们指定的SQ的ID,等于一个值来到SQ音符里边,每一个商品呢,都有一个自增的SQIDSQID等于我们传过来的值,或者点一个O,或者呢,你是按照SQ的名字来检索的,我们来看一下,在这呢,我们也可以来写SQ的名字。
03:35
把这个SQ的名字拿过来。或者呢,SQ的名字我们应该是like啊,不能直接把这个放这好点,一个like或者SQ的名字。SQ name是我们指定的这个K,好,那这个条件我们就拼装好了,那接下来是catalog ID,如果有了,我们继续拼装corry wrapper.and我们不用and,我们直接E口,E口什么呢?我们这有一个分类的ID,我们SQ里边也会保存看到log ID和brand ID。
04:10
这都是我们在保存PU的时候给他提交的数据冗余存储过来的信息,好,然后呢,接下来。还有我们的品牌ID corrywaer corrywaer.e我们来看一下,我们品牌ID也必须等于指定的值,CTRLC复制过来,把这个品牌ID也拿过来。好,接下来主要就是这个最小价格和最大价格了,最小最大价格呢,主要就是来对比我们这个price price必须在我们的价格区间,我们来找一下price就是这个价格区间,那这个价格区间呢,我们就可以来用corry wrapper拼装corry wrapper如果有最小值,那我们查的其实就是一个大于等于,所以我们这有一个叫GTE点一个。
05:03
我们GTGTE呢,这直接就有一个叫g greater than and equal,如果是GT,那这直接会有一个GT来看一下,这只是大于,要等于的话呢,我们就得带上这个G,好,我们这个价格是有一个叫price字段,B是是我们指定的值,把这个拿过来。Price price呢,必须是我们指定的这个值,好,那接下来还有我们这个,如果是有max的值,那我们就必须Le less than and equal好,我们这个equal呢,还是我们这个price。是我们指定的max这个值。那么这块条件就写好了,最后在这一拼装好,我们重新启动来进行一个测试。我们来测试一下SKU的检索,在这有一个商品管理好,我们先来查所有主要呢,这有一个价格,我先来点一个查询,现在呢。
06:08
我们查不出任何数据,原因就是我们拼装这个条件价格区间这有一个零,零,所以我们在这儿检索的时候,SQL语句是这样子的。我们这有一个price要大于等于零,并且小于等于零,相当于查价格为零的,那肯定是没有的,但是这个零呢,在这一块又是默认在这都是写一个零的,因为我们这是一个数字的input框,所以我们可以来处理一下,如果是max这是零的话,那我们就忽略不计。所以我们这一块max不等于空,并且由为我们把这个max是转成零的,所以我们在这一块max也不能是零,我们直接写一个0.equalignorecase不能等于我们指定的这个值,或者呢,标准写法,那就是应该把它转换过来,我们用inte,当这块不能用inte,我们应该用big disma将它转过来,用一个big disma,就说如果说我们的这个max是有值的,我们用big disma将它一封装,将这个MAX1封装。
07:13
那封装完的这个值如果是它大于零,我们才有必要拼装这个条件,而且这个封装有可能页面给我们提交不对的值,比如提了一个ABC,当我们这个前端页面是限定了,就算写英文字母也会转成数字,假设呢它有不对的值,那可能转贝格底C嘛,也会有问题,所以我们就在这查看一下。把这个复制过来穿catch exception有任何问题呢,我们就不用管了,如果转过来OK了,那我们用它来跟零比较大小,Compare to,我们有一个这个decma,零,因为我们这个东西呢。它会返回负一,零以及一,只有它是一了,说明我们当前比零大,它等等一吗?如果等等一,我们就执行后边这句话。
08:05
否则我们什么也不执行,所以我们在这来做一个if判断吧。如果说它等于一。我们才有必要去来给这儿来进行一个查询。把这个max拼接上。那么如果不等于,那么就不用拼接了,而这个命呢,它是零就是零吧,大于等于零,这也本应该是一个合适的,好,那这个启动完成,我们再来测试一下前端页面这一块,即使我这一块提交零也没关系,好我点一个查询。我们在这儿呢,看一下SQ语句。我们准备好了这个零,Price是大于等于零,分类的ID,品牌的ID我们也得查,而且大家注意我这一块,如果我没有指定分类,没有指定品牌,这也是一个很大的问题,所以我们在这同样也要判断分类ID和品牌ID,如果是零,那我们就不做这个事了,好,我就直接来string us,哎,我们直接来进行对比就行了。如果说零点equals ignore case,我们的这个分类ID就是说它必须不等于零,我们才来做的等于零,那其实就是查全部好,不等于零,我们给它拼上不等于零。
09:22
并且不等于零,包括这一块也是不等于零,那与此同时,我们上一次的这个PU的这个查询。他肯定也有这个问题,Po的这个ctrler,我们在这儿查询的时候呢,我们上来就来拼接这个。品牌ID以及catalog ID,但是我们并没有给它进行判断,所以我们还得判断,不等于零我们才来进行,不等于零我们才来进行,包括这一块,我们先来复制过来按等。不等于零,好,我们看到log ID不等于零,品牌的ID也不等于零,好,我们现在来重新启动。
10:02
好,我们再来测试一下。我们在这呢,先来查商品管理,我点一个查询。现在就可以查出所有的价格了,比如我来限定一下,我只查6000元以下的,我写一个6000,我点一个查询,那现在所有的这些价格都是6000元以下的这些商品好没问题,包括我来给他指定分类,我现在只来查手机类下的,并且我来只检索华为。我来点一个查询,那现在查出的这些呢,都是华为手机6000以下的,那查6000以上的呢,也是没问题的,我们在这儿来指定一个6000查询,那这一块呢,都是6000以上的,那么SQ的查询我们就完成了,对于每一个SQ更多的功能设置,比如在这儿可以上传他图片,让这个SQ参与秒杀,包括设置他的满减信息,打折信息,会员价格,以及跟他关联的优惠券,包括库存管理等等,那么后来呢,再来编写有些业务,而这些呢,也给大家留成一个扩展功能,大家可以尝试自己来编写相关的前端界面,以及相应的后台接口,那下一节课呢,我们就主要来先做一个这个库存模块的相关功能。
我来说两句