00:00
大家好,上节课呢,我们完成了这个给你推荐这个模块,就是呃,相关的分类,那这节课呢,我们完成这个菜单,我们也。做一下吧。这个菜单。模下边呢,由于这边你看PP的项目案例这块没有显示,下边再显示分类,所以这块我们把这个地方也。做一下,不然的话看着不舒服。然后我们再做最近访问。分类,那我们在这里边把我们的这个分类再取出来就行,这个我们别单做了,从分类里边,因为我们知道这个产品的呃,CAD了,我们通过这里边。Select。通过这个ID传了这个分类ID,我们就可以获取到这个分类,这个功能比较简单啊,然后我们。用呃,分类一下,接收一下。就叫就叫。
01:01
然后我们在这里边,呃,把它分类一下。进来。叫CT吧,CT。CT这样的话,我们就把这个分类信息拿到了,分类拿到的话,我们就可以填充我们的什么,我们的这个菜单上了。首页。呃,客服。款式。没过的。上层要。煤矿的上层分类,所以呢,我们只需要用一层分类就可以了,那我们删除一条。一条。首页我们这是到啊。到我们的。呃,这个页面就是。好了,你带。
02:00
然后呃,最后这一个就是这个商品本身这个商品的名称,这个商品名称呢,我们就叫做商品名称。这个。直接把这个商品名称我们给过来。我们再把这个分类。在这名我们叫做传过来的。里边的啊,那。我看一下这个写错了,写错了,刚才是没有那个。就不了C对吧,然后CID都有。再回到我们这里边来,然后我们转向我们的呃,商品列表页面,Select PI product list问号。我们就是cid吧,啊,等于我们的。因为他这里边也有一个点击这个分类CAD等于。
03:17
我们这里边加上啊CT点。点。下线。看一下。加加ID来我们看一下,刷新一下。好,PD高级香马里首页PP高级里的PP马点一下。P高低里边说P这样看着舒服一些,那这回呢,我们做这个最近访问他这会猜猜你喜欢,我们把它名称改改成猜猜你喜欢。呃,用户点的比较多的,那标签用那种方式去做,我们这个呢,就用另外一种方式去把它完成。找到,猜你喜欢。
04:00
各位,下次你喜欢我们这本上是预计访问。最近。访问最近访问过的图书,我们看一下呃。和我们的旁边的那个同类产品的推荐是一个结构,那我们看一下我们怎么获取到这个。如何获取到最近这个访问?获取ID,产品ID。这个我就放下边在这。过去最近。访问也就是最后访问,那我们最后访问是以用户为中心,用户访问,所以呢,这个最近访问呢,一定是使用session来完成,是哪个用户他访问的对吧?所以呢,要存在每个用户在里边,那我们如果用户点击一个商品到这个页面,我们就在比如说三的数组里边。假如说咱们有一个。呃,Ids吧,这个变量往里边存,比如访问了第一个产品,访问了第九个产品,访问了第十个产品,访问一下就在30里面加一个,那他在其他页面里边点过这个产品也是一样的,只要点上商品就会到这个页面来,到这个页面来咱们就能接接收到这个商品ID,接商品ID呢,在30里边。
05:20
咱们ids里边就加一个ID。那假如说我们这里边,你不能说他用户在一直点看了几百个,几千个,你这里边都有对不对,所以比如说我们这里边就有五个,怎么办呢?如果用户访问超过五个,这个长的size子就得尺寸超过五个,我们把第一个去掉,那后边再比如说再加一个,我们再把第一个给去掉,做30就可以了,然后最后我们通过这个,呃,应该是整形的一个列表。30里边全都是一个整形的列表,那通过这个列表里边这么多ID到数据库里边,把所有的数据取出来,对吧?然后形成一个集合扔到前端就可以了,其实原理就是这样的。那么我们开始完成一下这样的一个呃功能,其实原理比较简单,写起来呢,其实呃也不算也不算难,只是呢,嗯,如果你没从来没接触过,会感觉有一些呃怪怪的,对不对,那我们首先呢,我们肯定得是先获取。
06:17
30下。呃,通过request里边的。我们先获取这个三人对象,当然三人对象是http session,对吧?Http ses l session获取session对象,这样的话我们就有三人对象了,就可以从边存,也可以从里边取,对吧。打包。那有了这三人对象了,我们说了在里边呢,三人对象里边,我们呃会设置一个ids属性,当然我们现在还没有往添加呢,假设里边现在有对吧?假设现在里边有,那咱判断一下,如果用户第一次访问没有这个ids的时候,那就是判断一下是否被空的就完事了,对不对,如果有的话就从这里边取出来,所以呢。我们先。
07:01
从。在里边。过去一下的有没有这个ids。通过这个下标存储的一个列表,那我们先获取一下,假设用户第一次访问里边没有3.get属性获取到,我们就叫ids吧,多个ID用户点击D从这里获取。那存储和获取呢,得到的呢,我们都是什么,都是list是一个列表,那我们前边我们得把它强制转移一下。和呃,ID是平的。In,呃,整明了,那我们接收就用什么?A。In。先接受一下,起一个变量,就叫is码。我们想用这个,我们先取一下看有没有对不对,那第一次访问肯定没有,那我就判断一下,如果谁啊ids它是什么,它是空的,证明没有,没有的话,那我们也想用这个往里加呀,所以呢,如果。
08:11
如果为空的,那我们怎么办,Ids?用我们前面的变量,呃,让他用一个空的。也就是如果它是为空的,那我们用一个空的这样的一个呃列表对吧。然后呢,我们还得干什么,我们还得刚才说判断了,如果这里边超过五个或十个,当然个数你是可以定义的啊,也就是这个列表里边最多放多少个。最多。比如说五个或者十个都可以,最多放五个,那如果多余多出五个。将。将第一个删除对吧,那这个就很好判断了,判断一下,假如说我们从这里边获去。假如说它不是第一次访问,它不等于空,对不对,那我们看ids里边是不是多于五个了ids点。
09:06
Is。I exce,它的尺寸如果大于等于什么大于等于,比如五个,你写十个也行,你就看你页面能放多少个对吧?那我们将这个列表里边的用列表里边的re MV删除,删除这里边的零从前面删除是一个,对待从站警弹出一个。删除,这样最多放五个。那现在里边有没有呢,我们假如说重复的怎么办呢。重复的怎么办,对不对?重复的我们就不讲了,比如说访问过这一个,然后又访问一次,又访问一次,我不能说在这个,呃,数组列表里边,也就是这个赛事里边我们存的,不可能说总存同样的一个ID,他一直刷新这个页面,那我们就把这ID都放进来,肯定是可以的,对不对,所以呢。添加到这个列表里面,添加列表里。
10:00
呃。只要一份。那我们就需要判断一下我们怎么添加在ids里边,我们只要通过这个ids。这个列表吧,对吧,里边有个ad的一个方法,Ids ADD,我们添加,添加需要添加整数,我们只要把获取到的这个ID,当然它现在是字符串的。我们把它成行。啊。只需要。啊,从is里边用户点击一下添一下,点击下添一下,但什么时候添价,不是说每次点击都添加,对不对判断。ID如果等于空的时候能添加吗?不能,那我们这块加个叹号,ID不等于空,添加不等于空,添加的时候,那我们还得加一个条件什么呢?并且。并且什么呢?括号那个做一下这个优先级吧,先判断它的不同啊,然后我们看一下让这个ids里边这个列表里边包含使使用这个看他一下包不包含什么呢?我们这个ID。
11:12
它是整形的ID,我们在下边走这样一。下面转在这直接都手工的转换。判断一下它包不包含这ID,如果它包含这个ID就为真了,那包含ID我们存么?不对对不对,所以呢,我们干嘛这块加一个。就可以了。啊,我们。过来这样的话,我们用户访问一个。访问一个就把ID加一个,访问一个ID加一个,对不对,现在我们就能确保这个,呃,Ids里边也就是通过这个获取,这里边已经怎么了。加入这些了,加入这些呢,我们还得什么?呃,把这个是现在是在列表里边的,对不对,我们得把这个列表再放到这个30里边去才可以,不然的话是不成了,所以呢,将列表我们一定要怎么样,嗯。
12:02
放到重新再放回这个里边。三点不行。设置这个ids,等于我们这个is里边里面放到30里边。那这样的话,我们30里边也有这个数据了,对不对。然后。呃,其实我们直接ids就就行了,但是我们为了每次都是从30里边取的,每个页面过来都是从30里边取的,那我们这块不直接的变量,我们再从30里边再取一次。Ids因为这块已经设置进去了,对吧,其实没有必要做这一步,但是为了更明显一些三点啊。Get过渠道。通过ids这个下标获取到所有的什么所有的ids这样的一个列表,但是这个列表我们是。等什么?在后续一遍这个is。好,这样30里边就能有这些D了,那有这些ID,那下一步就很简单了,我们到数据库里边怎么着,把这个给取出来就可以了吗。
13:05
呃,到数据库里边,把所有的这个通过ID这个列表的数据把它取出来,那我们看一下,呃,判断一下,如果这个有可能用户一个都没访问,ID是空的,所以呢,我们判断如果ids不等于空,我们才去。到数据库里边去写程序的时候,你一定考虑到多种情况,然后呢经常去判断对吧。然后我们从。啊。商品产品里边。有利。这个里边。通过它里边什么呢?多个ID,因为ID是个数据,那个历是一个列表,那列表呢,呃,也是通过ID去存储的,所以我们调这里边呢,呃,Select。YID。I。嗯,这个方法呢,咱们说了是通过一个去调用的,咱们现在要返回的是列表,对吧,咱们可以写个重载的方法,也可以比如说select,呃,所有通过ID。
14:05
因为我们是通过ids嘛,对不对,是这样的一个方式去获取is是一个负数。所有。呃,然后我们这里边儿再加上。前面呢,它肯定转回来的是一个列表,也就是我们最后LT。Last r吧。然后。它是一个列表。VISA。但是呢,是哪个列表呢,是产品。列表对吧,我们把这样的话,我们就把这个,呃,产品列表这个都回到了。错是因为我们这个方法不存在啊,方法存在没关系,然后假如说我们现在获取到了这方不存在,我们再写,那我们现在通过。这个方法我们就可以把它放到起步对象里边,然后我们一边文就可以用了,那同样我这个呃,方法名也叫做LA,最后的。
15:09
呃,列表。等一下。拿去。就是这样的一个过程。现在呢,我们需要。通过数据把什么把这个。方法,咱们通过这个方法做完。在里边查询所有的,那这回我们用多个列表ID进来的查询所有,我们该怎么做呢?当我们可以用的方法。然后一个一个的列表,但是我们用的循环吧。找到我们的单个查找的。BY。查询所有,欢迎,谢谢。这里边儿。一点评价。嗯,我下这个吧。我们改成。我们要用的我呃。
16:02
产品select查询所有Y。ID。是不是这个方法?所有。ID,然后我们需要传进来的是一个什么呢?不是整形了,我们进来的就是什么。找到我们的。这里。传进来的是。Ids。它是一个。这个类型。看到吧,我list的一个整数这个类型,那我们这会改成ids。同样我们需要做一个列表,那我们就叫做呃,LA呃,Last list最后访问的list,然后我们用一个这样的一个产品列表。
17:00
好的,呃,当然我们也得声明一个。产品。放在这吧。比如说等于空。然后生命结果及连接数据库处理没问题了。然后再。这里边儿。这个位置我们应该写什么,就该写个循环了。菊花,菊花谁呢?Int?嗯,I等于零,I小于,看一下我们这个。列表的长度。是多少对吧,然后I加加打括号。这里边。设计一下。再回来。循环一次。对吧,我们执行一次这样的一个过程,然后选择从这个呃产品上挖的条件,然后这块我们就得用这个产品的ID了。不是CAD的查找。然后循环一次执行一下,设置一下,那我们这块这个值就得变成什么。
18:04
Ids。里边的我们获取的里边的每一项。所以I就是循环一次从零开始获取第一个,然后获取第二个第三个对不对,第二次获取第二,第三次获取第三个,就是第三次获取四那个下标和二的赛标对吧,这样我们执行一下就可以了,然后。每次循环玩一次。你看循环一关一次获取一到一个产品,获取到产品,把它加到我们这个list。声明的这个里边。对吧,然后我们再把这个给返回去。这样的话,我们有几个ID,我们就查询几个,查询几个呢,都加到这个列表里边,最后把这列表返回去就可以了。当然这个可以生明到里边,这都无所谓啊,因为我们没有其他的这边在用,没有在外边去,没有返回个商品,而是返回的一个产品的那边,所以产品在外边在里边都是可以的。
19:05
好。那我们再回到我们的,呃。产品页面我们看一下试试,最后产品没问题了,然后我们再回到我们的。试图进面。我们最近浏览这个位置。交。上面那个复制。就是。所以记住了。看看结果一不一样。A、链接。没问题。BLBT图像BTBDBD。产品价格问题。只不过我们这块不是什么。不是我们那个具体访问的分类的列表了,而是变成了我们的呃,产品列表对不对,所以我们把这个重新写一下,呃,这个列表的访问就行了,这块是L。
20:10
Last最后的列表,那我们别叫CP了,Last,我们last最后把P吧。这样的一个名,然后LP点。产品的呃,ID,然后这里边LP点产品的这个图片名,然后LP点产品的内这块是LP点最后访问的产品的价格啊,我们看一下。小心。这只有一本对吧,我们再点击一下。比如说我们点击一个。这个。看一下它从三星里边。对对,我们再找一个比输这边点个点击这个。啊。
21:00
点击对吧。点击这个。点击这个几本了,应该超过五本了吧啊。12345,那我们现在一本了,我们再点一本,能不能把第一本PP给去掉。你看本就没了,我们再点把项目了,对吧。那我们比如说再点PP读书,我们再点一下PP读书。2P读书放到最后了,这就是一个对战的一个写法,这样的一个过程,好,那这这里呢,我们就把这个对接访问和这个弄完了,那你可以用同样的方法把页面不足的地方全部给补上,包括列表页面,包括首页都可以用同方,比如首页能不能也用刚才那个代码,对吧?找到最新访问的呢?放最新访问的,把这些放到首页呢,是一样的,也是可以的,你只要把它的代码复制一下,然后呢,呃,放到首页的request里边就可以了啊。
我来说两句