00:00
接下来继续完成商品列表的功能。先来看一看。京东的啊,这是商品的列表,它一般有什么数据呢?有商品的啊,一个列表有这个分类相关的数据。对吧。啊,还有一些推荐,当然这个推荐你可以写也可以不写。啊,接着还会有什么一些排序,比如说按销量排序,按评论数,按这个新品按价格排序啊,或者综合排序。是吧,然后还有什么,还有分页。看这个分样。啊,当然他做了这个。啊,流失的一个加载。所以到这里我们就可以再点成分页了。那我们。先把一个商品的一个列表,需要的一些数据我们给整明白之后。就可以去写我们的商品列表了。首先去写。路由。列表也是不需要登录的,所以我们放到上面。
01:10
直接复制一下啊。请求他就行了,然后使用它的index方法。商品列表,因为列表涉及到一些搜索,所以这里我们把request给用上啊。来,接着去整理一下我们要返回的数据。一个是商品的。啊,这个数据。分页数据。好,再一个是。呃,类似于这个推荐商品吧。
02:01
就是这个地方的。但这个实际上写不写都可以啊。我们还是写上吧。精选商品。还有什么,还有我们的分类数据是吧。是不是分类数据。Return。长了一个数轴。先把我们这三个要返回的数据啊给写上。这是商品的。变量没有,我们先先写空啊,先把变量给写写。精选商品的。改成推荐商品吧。
03:00
啊。分类数据。好,分类的这个比较好写啊,直接从我们缓存里去取就可以了。看一看我们写的这个缓存。在harpo里面。娶谁呢?娶这个。没被禁用的啊,取这个正常的还是用它。推荐商品啊,这个我们等会儿再查先把。哎,我们正常的商品可查出来。
04:00
Where is啊啊,首先你得上架是不是。接着。如果暂时没有其他条件的话,我就加一个分页吧。先加一个粉眼啊。20条商品每人。之后返回就可以了啊,推荐商品。推荐商品。我们就从这个推荐商品里面去随机吧。啊,随机啊,当我们有了查询条件,比如说搜索了手机啊,或者搜索了手机这个分类,然后我们再从这个推荐商品里面的相应的分类里面的。数据去去写。是吗?嗯,也是一样的啊,但这个查询。再多加一些条件,比如说。
05:01
是被推荐的。不用分页啊。Take。取十条就可以了。再加一个。随机返回。啊,看看我们随机返回的这个。方法。In random order随机排序。好,这个推荐上面就完了啊,当然现在没有其他的搜索条件,我们先这么写,有其他搜索条件的话,这里可以加上一些搜索条件啊。然后去,呃,限制一下它的一个字段。
06:01
商品列表的话,一般来说。啊,只需要这个ID。抬头。价格。商品的这个图。嗯。没有了啊,然后多少人评价这个也可以加上啊。呃,可以写一个啊,在这写一个这个位子。位置我们只是要一个数量,你看只是要一个数量,是不是看只是要与评价的数量,所以可以,嗯,就不用携带整个评论数据,直接位置count。啊,直接去要这个评论的一个数量就可以了。这样推荐商品应该就完事了,只不过没有搜索条件,先简单的这么写,然后就是我们这个商品啊。商品啊,先这么去查询啊,查询这个上架的20个啊,当然一些排序条件还没有加。
07:07
好,来看一下结果。请求。Get方式。直接请求这个方法。哎,这是我们的商品的,这个包含了分页信息啊,当前页,然后我们的date,我们的数据。呃,这个字段我们也可以加一些限制啊,就是不想要这么多字段的话。也是和他一样就可以了。这就可以。这个也需要一条评价的一个数量是吧,所以我们把这个。啊,With content也给加上啊。这个少个来。嗯,把这个放后面吧。再来看一下这个字段少一些,并且还给我们带了评论的一个数量,那这个有一条评论。
08:02
就是其他的商品。啊,就没有评论,包括这个价格都有啊。嗯。分页的数据。当前页。往下最后面应该还有其他的属性啊。啊,第一页的链接,然后。从哪里来的最后一页?然后最后一页的链接。是不是包括links里面也有啊这个。呃,然后还有这个active。所有的我们这个一页一页的一个数据。看到了吧,就是每一页每一页的一个数据。当然这个是我们使用的。啊,包括后面的数据,分类数据都是有的,来往下看一看,分类数据还有这个。推荐的商品。哎,这个是推荐的商品,因为取了十条嘛啊。这个是分页的一个信息。
09:01
啊,总数。对吧,还有这个每页的一个数量,因为我们用的这个是。嗯。默认的这个分页啊,所以它的这个结果就是这样的。当然你也可以使用。使用就。比较麻烦。听什么?可以给大家看一下全的父母。它的结果就。跟这个就不一样了。如果使用商品的传值form。嗯,那这里。我要使用那个this啊this。Do this里面的response。生先生成一个传输form母的一个响应,然后从响应里面获取这个文本。知道吧。啊,一个分页的一个响应。然后把商品的数据放这儿。再把商品的。这个传承父母。给它扭一下好。它呢,它是一个响应对吧,响应可以从它的这里面。
10:01
啊去。获取它相应的一个内容,一定要加上这个,这个的话才能经过这个翻译器啊,如果不加这个,你直接get content,拿的是原始的一个查询的一个内容。啊,但是它的结果呢,是个字符串,所以你字符串你还要给它转成数组,用杰森扣的。对吧,还有转向速度。哎,这样我们看一看使用传的分母以后的一个结果啊。报错了TRANSFORM18行。这个的错误。看一下。这里分析的错误,也就是说啊,这个不存在。因为我们这里没有select,你看这里没有select,没有查询,所以。它不存在是吧,所以我们这里还不能。不能这么写。你要用传的分母,这里还不能这么写。啊,再来看一下结果。
11:00
啊,这样的话就是用了传的date,这是格式化之后的一个数据。啊,包括这个。分页的数据会放在mate mate里面,M属性里面往下找。因为有20条数据,我们分的是20。嗯,是不是分页会放到这个mate里面。再这么分类数据,然后下一页的一个链接。总数。所以这还又包裹了一层date,所以你这么用还要去处理这些东西,比较麻烦啊,我们直接就返回就行了。直接就返回这个分页。你看直接就返回。
12:01
这个结果也是可以的,就是它的字段有一些。呃,那个乱就是说它分页没有放到,放到单独的一个里面,就是在这个故属性里面,而date是真正的一个date。啊,就是没有那个我们的transform它分页,它把所有的分分页放在了这个me里面啊,我们这里没有放而已。就这么用就可以啊,因为这样的话啊,我们可以去用更少的一个查询的一个字段啊去显示。接下来为商品写搜索条件。看一下搜索条件的话,一般只有一个分类,还有一个。啊,这个标题的一个搜索对吧。当然我们的分类比较简单,没有像他这么多啊。写下搜索条件。先取这个开头的。Query。
13:01
去泰斗啊。呃,我们就只做title的一个模糊的搜索吧,就不做这个商品描述的啊一个模糊搜索了。写上我们的。搜索条件问,哎,当title存在。Q,柚子?Title啊,这个title呢,你直接写到这里面也行啊,我用这种use的方式来用吧。Where开头。百分号。啊,这里写变量。抬头。好,这样的搜索权限就有了,我们来试一下。
14:04
嗯,现在我们有这个,是不是我们就搜索它加一个快条件。Title啊,现在不加不传这个值是正常的,还是这么多数据是不是好接下来。加一个title等于它的。是不是只搜索到了包含它的内容,你看。是不是这样的?哎,就没了,就三条数据。对吧。嗯,如果我们不想去。啊,做这个就携带这个link的数据啊,有一个办法。可以使用什么呢?不使用这个分类查询,还有一个简单的一个分页查询就是啊,不包含这个链接。看一看,分热点。然后有一个啊,Simple。啊,简单的一个分页查询。
15:02
看一下。是不是就不包含那个link了,它只有上一页和下一页看到了吗?Next ul还有first,好,我们就用这个吧,啊,这个比较简洁一些。哎,搜说。好使的是吧。啊。那接着再写另外一个数的条件分类。直接复制一下。但是你要搜索分类啊,你得先把这个分类ID给查出来啊,你才能去给他进行一个搜索。测试下来啊,我们写代码把这个写上再测试啊。复制一下这个。当你存在的时候啊,我对你进行分类ID的一个搜索。
16:06
对吧,这应该就是。等于了啊。就是当你有搜索分类ID的这个搜索条件的时候,对吧,我就搜索你的分类ID,等于啊这个分类ID。好,加个杠ID。啊,这样的啊,来测试一下。那现在什么条件都没有加啊,它的分类可以看到有这个六的。有这个14的,然后我们就只搜一个六的吧。嗯,不写到这里再写一个。搜索这个六的。好,现在都是六分类的,包括这个分页。也是有的,因为这个数据比较多啊。
17:00
每月20。然后下一页的U2。来看一个问题啊,就是我们既然这里有搜索条件,哎,我们想让这个链接带上搜索条件。是不是这样点下移的时候就会维持住这个设置条件。啊,不然的话,你直接去点这个,这的话它是没有带上速度条件的,当然其实呃,让前端处理这个事情也行,比如说前端啊,给他说你写这个分页的时候,写链接的时候,你要带上你自己的搜索条件是不是,其实我们后端处理也比较简单,只要加一个呃方法就可以了,来我们来处理一下试试。先把这个名字都换一换吧,参数换成。ID。接着我们使用什么方法呢?有一个。啊。就是对分页进行open,可以追加额外的一个塑造条件,比如我们追加一个title do title追加一个分类。
18:00
ID等于dota啊,这个分类ID,接下来我们再进行测试看一下。找到分线这里,这是不是就带上这个我们搜索的这个条件了,对吧,这样。前端拿到这个链接可以直接去用,不用再去处理了啊,这个是比较省事的。而且我们还返回了原始的这个pass,你如果想你自己处理去分页,你可以基于这个当前页,还有每页数量,你自己去处理这个分页也可以。啊,如果不想用我们提供的这个链接都可以。如果我们再带上title的话。也是一样,多个条件都是可以给我们维持住的。看一下。是不是两个速度条件?接下来我们不传,缩短看一下啊。看一看链接。就是没有搜索条件的时候,它会自动帮我们给。
19:01
哎,就是说忽略掉看到了吧,啊还是比较省事的。这样搜索我们就做完了。接下来做什么呢?做排序。首先可以给他一个默认的排序啊,默认我们让他按照。按什么排序呢?按照更新时间吧。就是发布商品的这个修改的一个时间,上架的一个时间,更新的一个时间。先简单这么写,但实际的商城不是这么去写的,它的这个排序是很复杂的一个。算法。我们就先简单的写,按更新时间来。啊,这是算是默认的一个排序吧,那接着我们可以有一些额外的一些排序,哎,比如呃,按我们现有的,你看我们有销量,我们可以按照销量排序,也有评论数,也可以按照评论数排序。
20:08
对吧,也有新品,其实我们默认就是新品了,默认按照这个更新的一个时间去排的,是不是我们也有价格,所以这几个条件我们都可以写啊,新品我们就不写了,新品因为就是我们默认的了,那我们就写一下销量评论和价格好吧。来看一下这个销量。也是从query里面。啊,获取这个参数啊。嗯,还是一样要使用这个温啊,使用这个温啊。当你。啊,选择那个销量的时候,然后按照销量给你排序。当然它还支持什么呢?它支持倒序和正序吧,应该看一下。啊,只支持它是从大到小啊,它不支持这个反着来,那我们就好写了。
21:06
Query,然后是order by。哎,我们的销量字段DC啊,倒叙。这个不要到负,这样销量排序就写完了啊。那我们来测试一下。嗯,先随便给几个商品,给他一些销量吧,因为销量是我们新增加的字段。并没有给他就是写进去,就我们做数据测试,数据填充的时候,并没有给他填进去。找到商品表。看一下啊,注意啊,我们这个查的是什么上架的啊。所以我们要找一些上架的给他去加一下数量。先找这个is on等于一的。
22:02
就随便找一条吧,他吧。然后把它的销量改成。2121好。接着再找一条,它下面那条啊,就他们三个挨着的。11122,好,来提交。起床。接下来。我们按照销量排序测试一下。现在来看一下啊。哎,这个销量没有显示,所以我们要就是再查一下销量这个字段啊。好零是吧,因为我们默认排序按照时间嘛,按照根据时间去排的啊。咱们把那个。时间也写一下啊。
23:08
来接着加一个。啊。呃,我们这里是判断,只要传了这个值就可以啊。只要传这个值就可以。所以我们嗯,可以加一个值啊,比如说让它等于一的时候,只有你按照这个销量排序了再给你排,否则的话就不给你做处理。好吧,那这里我们传一个一啊,按照销量排序。哎,是不是销量多的就在上面了。是不是?从大到小。接着呢,以同样的方法可以去处理什么?处理这个价格啊。你把价格是查询的有啊。直接复制一下。
24:00
价格烦死了。这其实也是作为搜索条件啊,作为搜索条件呢,我们就把它附加的分页上面,等会我们再处理这个东西,先把这些都测试通。来写一个问。Do等于一。PRICE。来测一下价格,价格就比较好写啊,价格是我们之前填充数据就给随机了的。啊,你看价格比较大的在上面是吧,比较小的在下面,这个是279。这个是。啊649是不是当然可以,呃,我们这个应该是支持这个联合排序的啊。漂亮大的就支持这个综合排序。所以说呃,其实写单个的就可以,它这个都是单个的一个排序嘛,我们写单个的就行了。
25:03
按照价格也好使了是吧。来,接着。按照我们的评论排序啊。评论数。这个我们就不能直接用query拍了,因为我们商品表里面是没有评论这个字段的。啊,评论它是什么,它有一个关联表有一个。嗯。这个评论。是吧,一个关联表。所以我们怎么排序呢,可以就是说取它的这个。评论。啊,然后去进行一个排序。我们想一下啊,这里我们with count的这个评论,也就是说我们的结果里面会多一个这个。
26:06
Count的这个属性。对吧?那么我们可不可以基于它进行排序呢?啊。来看一看啊。在这里把它放上面,然后。快啊。按C排序,按这个。他。DC进行排序。来看一下啊。没有传是吧,来传一下。是不是评论数啊,有的在这个里了,对吧。这条商品的ID是八啊,因为这条商品确实比较靠前,所以你们可能以为啊,没有按排序,就是按照原来的这个排序排的,那么我们把这个评论的ID改到最后,我们看能不能排上来好不好。看一下评论。
27:03
这里关联的商品ID是不是?我们去找靠后的一些商品来使劲往后找啊。啊,当然还要找这个is on啊,Is on就是说发布的就这一条吧,哪一就是499。来,我们把评论改了。这个肯定是比较靠后了吧,499。看他能不能排上来,哎,就证明我们的这个按评论数排序有没有效。是不是可以排上来。哎,说明我们这个想法是可行的啊,就是在这里with can't。它之后它会多一个这个字段嘛,多一个这个字段,然后接下来这里我就可以去按照它进行一个倒序的排序,这样按评论数也有了是不是。啊,为了保持统一,我们把这个都改一改啊。保持变量的一个统一。接下来这里要改啊。
28:06
嗯,那这个船参这里也要改一下啊,这样的话都一样。这里写错了啊,是个S。是不是按照评论的数量排了好?嗯,接下来我们再做最后一步,就是所有的我们这些个排序的字段,其实也是搜索的一个字段,我们要把它也给附加到。这个链接里面这样的话,即使他点下一页的时候,也是按照之前他选的这个排序去进行下一页的。清楚吧,不会导致因为我们下一页而导致搜索条件或者这个排序字段的一个丢失。来快速写一下啊。三个。然后看看都有什么。评论数量了是不是?价格的。
29:03
还有一个销量的。在这啊。啊,这样的话,我们的列表就完成了。啊,包含了搜索条件,还包含了排序。对吧。而且。推荐商品也有,分类数据也有啊,最后返回数据。
我来说两句