00:00
呃,那么再往下的话呢,那么咱们呀,要来看一看,说刚才那种方式不好,对吧,那么如果那种方式不好的话呢,那咱们就用一种好的方式啊,一种好的方式,那一说如果用好的方式的话,那大家想一想啊,结合着我们当前这个程序啊,结合咱们那一程序,所以刚才是一条条处理,那现在呢,不想一条条处理了,那怎么办?分区呗,是不是以分区为单位进行处理啊,对吧,那咱现在呢,来看一看这里。判断是否为首单,那么咱们现在呢,来看一看我们这个第二种方案啊,啊第二种方案。方案二啊,这个呢,也是判断收费首单,那么如果要是这个第二种方案的话,我想干什么呢?我想以我们这个分区为单位啊,以我们这个分区为单位啊,为我们的单位,然后将咱们这个整个呃分区的数据,然后呢,拼接一条色口来进行一次查询啊,那这块如果想做的话,怎么去实现以分区为单位,将整个分区的数据拼成一条circle口啊去查询一下,对吧,大家想一想,你要想判断这个东西是不是消费股对吧?那咱们是不是看一看当前这个分区里的所有用户ID在咱们这个表里面是不是存在呀,对吧?那原来咱们在这个一条条处理,是不是等于现在呢?如果以分。
01:43
因为单位数不能用等于了,用什么印呗,对,大概思路是这样的啊来,那咱现在把这代码写一写,那么如果写代码的话呢,那来把这份拿过来,然后接下来咱们呢,在这里,那应该是map partitions啊map partitions,然后接下来那么这里拿的应该是order info AR啊这是我当前呢这个分区的数据,那么咱们一般呢,在整体处理的时候呀,一般我们呀,把这些东西都转换一下吧,转换一下发生什么呢?我一般都把它转换成集合,对吧,就是我现在一般在对我的迭代进行处理的时候呢,我一般都把它转成集合,为什么用迭代起迭代一思是不是就没了呀,对吧,所以说呢,我一般对吧,这个我的习惯是这样的,对吧,那叫order in inform list对吧,Order list,那么咱们当前这个order list这个代表什么,是不是代表当前这个批次它所有订单的一个集合呀。
02:35
其实我现在在咱们这里边应该是啊,当前的批次的一个分区对吧,一个分区对吧,它所有订单集合吧,对吧?注意啊,这个里边是当前批次的某一个分区或者一个分区中吧,对吧,当前一个分区中所有的订单啊,所有的订单的一个集合对吧?咱们先把它放在这里了,对吧?那么你现在你从订单的集合里面,你可以拿到什么,你是不是可以拿到咱们这些订单是哪些人下的?
03:06
可以拿到吗?同学们,其实我现在这里面订单是不是肯定有个用户啊,对,我现在可不可以拿到当前这些订单是哪些人下的,对吧,可以吧,所以说呢,那么咱们再往下走干什么呢?获取当前啊下订单的所有用户啊,当前。分区中啊,获取订单或者下订单的啊。的用户,那怎么获取呢?那么order in for this的点map一下呗,直接咱们现在这里面是不是可以把user ID给拿到是吧,然后接下来那么咱们现在拿到什么呢?拿到应该是user ID它的一个粒子集合吧,然后接下来那么咱们根据是吧,我们这个用户集合,对,然后到哪呢?到我们这个菲尼克斯中啊来查询看看对哪些用户啊,看看哪些用户下过单啊,下过单就是曾经消费过啊,曾经消费过,那么我现在呢,那就写搜后L语句呗,对吧,那么咱现在呢,就来写我的搜后语句,注意啊,这块的坑挺多的,同学们啊,就是这块咱们在写代码的时候,其实这坑啊挺多的,对吧,那么怎么来写呢?对吧,这个第一个坑就是咱们拼接搜狗语句对吧,这会的坑来,同学们,你们想一想,大家一起来思考这个东西。
04:31
这个搜回去啊,这会儿该怎么来拼接,这是一本。然后接下来这里有括号呗,然后接下来这里是ID23呗,对吧,就随便来写对吧,然后呢,我怎么样把这个东西给替换一下,对吧,那你想想我要替换的话,我是不是得从这集合里面做ID取出来,对吧,怎么来写呢?就这个东西,我怎么样把咱们当前这个集合里的ID啊,然后给它放在这里对吧?给它放在这里make string是吧?哎,不错啊,Make string,那么如果说我现在make string的话,User ID list它里面有个叫什么make string是吧,那咱们现在用什么来分割的呢?
05:16
逗号对吧?那咱现在呢,那就分割一下来,注意看同学们在这里,我现在where,然后呢,u.IDE那么接下来咱们是不是可以通过Dollar大括号的方式,把咱们现在这个分割后的内容拿过来,这种方式行吗?同学们好啊,这种方式行不行?如果这样的话,那你们就叫坑去了,这是因为我说这种方式,你想一想,你如果这么写的话,相当于什么?相当于你写了一个so后语句对吧?这so语字母是怎么写的呢?说我查询where user ID,然后接下来in,然后括号咱们的第123对吧?那么咱们现在呢,去做一个查询,同学们这是不是报错了,为什么?因为我当前这个ID啊,它不是整数。对吧,它不是数字类型。
06:02
对吧,那么它是字符串,如果字符串的话,咱们现在是不是应该这个形式啊,Whered得一,然后呢,咱们这个IN2是吧,然后三是不是这样对吧?那么咱们这样如果运行的话,是不是可以啊,也就是说你现在呢,要把咱们这个东西给我整成这样,就整成咱们现在现在这这种形式的,那怎么走。啊,这个拼的时候怎么拼。前面加个引号,后面加引号,中间呢,是不是用这个来分割呀,同学们注意看啊,咱们现在最终我是不是要形成一个这样的一个语法对吧?咱们在这里我最终呢,那我现在啊要形成一个这样的语法,注意看同学们对吧,我现在呢,形成这样的语法,那么如果形成这样语法的话,那么咱发现那么前面是不是有一个单引号,后面是不是单引号呀,然后中间呢,是不是就把它集合的元素给连接起来,然后用我们现在单引号单引号逗号来做一个分割就可以了呀,所以说呢,那么咱们在拼接的时候,注意看同学们在这里,我们呢,这里应该什么?应该是单引号的单引号,然后接下来那么中间是什么呢?中间呀,那应该是我们啊这个user AB的点make string,然后用什么来分割呢?对吧,咱们现在在这里分割的话,应该是单引号,单引号逗号来做一个分割,对吧?来看一看同学们。
07:26
我现在在写的时候,这里是不是有一单引号,后边是不是有单引号,然后进下来中间呢,在咱们这块,那我用什么呢?那我要用对吧,咱们现在对吧,这个东西来做一个我们这个分割对吧?来做一个分割啊看一下这个不需要是吧。能理解吗?啊,其实这个就是一个小坑啊,对吧,就是咱们的拼接的时候,你需要注意一下,对,你需要注意一下对吧,然后接下来对吧,那么咱们现在呢,把这些东西拿到了拼接完circle之后呢,咱们是不是可以执行我的S对吧?那接下来呢,那我现在要执行我们这个circle口啊,然后呢,从我们这个菲尼格斯中获取数据对吧,来获取过获取数据。
08:17
那么怎么来获取数据呢?那么咱们封装了一个工具类叫菲hoeni斯啊然个U,那么这里边呢,有一个query list这样的一个方法,对吧?把咱们SQL拿过来点V2一下对吧?那么这个时候拿到的应该是什么呀?是不是应该是user list list是不是咱们用户的一个消费状态啊,对吧?那接下来你拿到这个用户消费状态之后有什么用?同学们我是不是可以知道哪些用户消费过来,所以说我可以在这里再获取一次,获取什么呢?获取消费过的啊,消费过的用户ID啊的一个用户ID,那么怎么获取呢?User states list的点,咱们是不是可以map一下,然后接下来点这个里边,同学们,那咱们现在想获取,那么怎么获取,就我想把这ID给拿到。
09:09
哪些UID拿到,那这个时候咱们想怎么获取,你要知道咱们先返回的太空装是不是JS对象啊,那么你现在是不是对Json对象集合这的操作对吧?那么你要想去获取的话,你应该通过什么,是不是通过咱们这get Jason string来获取啊,把谁获取到呢?对吧?注意凯里咱们这个从通过数据库里面查出来这个字段的名字叫什么对吧?叫user ID对不对,叫user下下ID对吧?然后第2VR下,那么这里拿到的是cons的啊user ID是消费过的一个ID的一个集合啊,消费过ID集合。这能理解吗?同学们,这里有个坑,掉下去了第二个坑。就刚才这块啊,你们在写的时候,这会需要注意一下,这是一个坑对吧,这是一个坑对吧?嗯,坑一对吧,坑二对吧,来大家想想这块坑在什么地方。
10:08
这个坑坑在什么地方?就如果说你们需要接触过我们这飞,接触过我们这个菲尼克斯的话,那你应该知道这块。嗯。对吧,大家想一想,咱们现在呢,那就没接触过,我来教你们是不是来,那咱现在想一想,同学们,我看啊你你看我在我在创建表的时候,我现在表名我大写小写。我是不是小写,我是不是小写的呀,我的字段名是不是小写的,你但是人家你看看在这里我的字段是不是大写的呀,那你说你的字段名大写的,你查询出来这个东西你用小写接收,那能找到吗?是不是肯定找不到了,对吧?所以说第二个坑大小写对吧?你们这个下去的时候,你们一定要自己敲一下这个代码对吧?这块坑是什么呢?这块是坑是我们这个这个字号拼接啊拼接对吧?然后接下来那么拿到它之后,那么接下来咱们现在是不是可以做一个处理的呀,怎么处理呢?对吧?那你看本身啊,当前分区所有的数据都在咱们这里边呢,对吧?那么咱们是不是可以对我这个数据做一个便利呀,啊,我们这个for对吧,那每遍利一次得到什么,得到一个order in inform对象,那我现在是不是可以判断一下,当前这个我们这个order in inform对吧,当前这个订单,它下订单用户是不是曾经消费过。
11:27
那怎么判断呢?我这个所有消费过的用户,我是不是已经拿到放那个集合里边去了呀,那咱们是不是判断一下下这个单的这个用户是不是在咱们这个集合里边是不是就行了呀,对吧?也就是说判断一下咱们当前已经消费过的用户的集合列表中是否包含下这代的用户呗。那代码应该怎么写?怎么判断这集合里面是不是有这个用户呢?怎么判这集合里面是不是有这个数据呢?怎么判断集合里面是否包含这个数据呢?对吧?你看非得说包含你们才知道是不是,对吧?那咱现在呢,在这里对吧?大家都知道咱们现在呢,这里应该有什么,按user list,然后接着点我们现在呢,Cons,然后看一看咱们当前是不是order in for,里边有一个属性叫什么叫U仔ID啊对吧,这个是坑三对吧,这是坑三啊,然后接下来你们现在啊,先把这个思路顺序来一会,咱再想这个坑三在什么地方,对吧?那我要判断一下当前这个集合里边是否包含咱现在UID,那么如果包含的话说明什么?说明咱们当前下这单的用户曾经是不是消费过呀,如果消费过的话,那么这个时候order in for,然后接下来点我们现有一个属性叫if first order,那么它应该等于我们的零,不是首单,否则的话,那么它应该等于一,这个是不是说明是首单呀,对吧,那咱们现在来看一看。
12:53
点空啊空。
13:00
这个有什么坑呢?这个这个逻辑不还是比较顺畅的吗?那你说咱们现在坑在什么地方?注意看同学们,我现在呢,在这里是不是有压力类,这个压力什么类型的order in for是吧?来看order in for,在它order in for里面呢,其中有一个我们这个属性什么user ID对不对,什么类型的long类型的,然后接下来咱们当前的集合里边类型什么类型的string对吧,String,然后contain long肯定包含不到。对吧,这会肯定不行,所以说别忘了,对吧,是不是得做一个类型转换呀,注意啊,这会需要类型转换对吧?这个的类型转换你们下去的时候,这会儿别找我代码写,就你们随便写,然后写的时候看一看你们会不会掉到坑里面去啊,就是咱们现在呢,我给你们讲过的时候有些坑,然后你们到时候别找我代码写,你们自己说我现在要以分区为单位来进行处理,对吧?然后你们就按照这个思路去实现,看一看你们会不会叫坑里去,对吧?来咱们现在呢,在这里把它呢去转换一下,To string一下,对吧,To string下,然后最后呢,在咱们这里,我呢在返回的时候不能返回,咱们现在提了吧,对吧,我是不是应该把咱们当前我处理过的这个集合,对吧?这有一个order in for list对吧,这个order in for list这个做便利嘛,对吧,咱们应该把order in for list对吧,点to atator给返回去啊吧给返回去好,那这样的话呢,关于我们现在啊,这个判断是否为首单它的第二。
14:35
二种方案OK了啊,判断是否为首单的第二种方案OK了,那么现在咱们现在呢,来做一个测试看一看啊行不行,大家看行不行,来点VR定义变量来接收一下对吧?来接收一下,然后接下来呢,在咱们这里边把它呀,也是做一个打印输出对吧?做一个打印输出对吧?那么咱们如果想运行程序再说一遍对吧?那么咱们现在运行程序,首先呢,那我要模拟数序发送到我们这个MY搜Q里面去,对吧?那么为了监控到数据的变化,我这个mawell是不是在起,然后接下来,那么咱们把这个数据发送哪了呢?我用mustwell发送到咱们这个主题下面去了啊发送到咱们这主下面去了,然后接下来那我要从这主题读数据,那么所以说呢,咱们这个啊,这这这个背一次DB马APP,那咱们这块呢,咱们应该把它给拿过来,对吧,把这名字呀也拿过来啊,把这名字也拿过来。
15:28
这个SPA streaming对吧,是他啊巴,Streaming是他对吧?然后接下来那么咱们现在呢,把它起一下啊,把它提一下meeting啊,把它提提一下啊,把它提一下,那么起完它之后呢,那么咱们现在呢,在这里我们把这个数据呢,做一个分流,根据表明把数据分到不同的主题中去,前面加了一个ods,然后接下来那么咱们现在呢,从我们这个卡卡中,然后呢,把指定的主题的数据给读过来,我们现在读什么?我们现在呢,读的是订单啊,我们现在把订单主题数据给读过来,所以说呢,那么你需要把我们order in for APP对吧,这个SPA程序给它读过来啊CTRLC把这个呢给拿过来是吧。
16:14
好了,那么这个呢,是我们现在去读取我们这个订单的数据,对吧?那么读取订单数据之后呢,那么咱们干什么了?在这里我们是不是做了一个我们的判断是否为首单的对吧?那么咱们现在呢,在这里我要要做一个判断是否为首单啊,是否为首单对吧?那么咱们在判断是否为首单的时候呢,其实啊,我们是对吧,在这里给他标记位啊,在这有标记位,而且我们在实现的时候呢,两种方式,第一种方式对吧,那就是一条一条的查询,第二种方式呢,把所有分区的数据,然后拼接到第一个咱们搜索语句里边查询一次,对吧?那么咱看一看能不能够实现我们这个效果,对吧?能够实现这个效果。把这个取一下啊。
17:11
好了,那么咱现在运行我们这个模拟数据的指价包。看有没有123的用户。来来看咱现在这个数据是不是有的呀,对吧,但这个数据有了对吧,应该有意义,对这个也应该差不多,但是没有。在这里没有123是吧,再来一次。我建议大家下去的时候也什么呀,也这么测一下,因为咱们现在这个业务是不是就判的是会受单啊,如果说你现在呢,在这里这个状态不对的话,你后边的东西肯定不对了,对吧,你后边东西肯定不对了,对吧。
18:00
好像有二类用户是不是这个是不是零了对吧?好了,那说明咱们现在呢,这种方式没啥问题了,对吧,那么后面呢,还会给大家介绍别的方式啊,就判断咱们现在类似于我做这种判断,还会给大家介绍别的方式,对吧,现在呢,先掌握这两种,把它停一下。
我来说两句