00:00
呃,那么再往下走呢,还是看他的代码是吧?看他代码,那么咱现在呢,新手写这个circle狗对吧?那circleq呢,那咱们来到这儿是吧?呃,咱曾经保存过对吧?这个呢是我们这order对吧?然后接下来再到order里边不要去找它对吧,咱们呢,去找谁呢?找我这省份,省份的时候,咱们在保存的时候,是不是有这么几个字段呀,对吧?把这字段呢拿过来啊,把字段拿过来,然后接下来,那么咱们现在呢,在这里去写个查询。那么这个查询呢,就不要查咱们现在对吧,这个所有了啊,咱们把这几个数据呢,给查出来对吧,那其实有ID name,然后呢,Every code以及呢,我们现在is code,把这个搜口语句呢,咱们CTRLC啊给答过来啊,那么答了之后呢,那咱们呀,现在得放在哪呢?再放到我这里是吧,奥德一,然后接下来咱们往上走。
01:00
把这个内容啊,咱们给转换一下啊,给转换一下,转换成小写啊,然后这个双引号就不要了。来,那咱现在呢拿过来,那接着是加条件啊,这个条件应该是where呗,然后呢,这个条件应该是什么ID,然后呢,In啊那接下来这块是不是就需要注意一下了,咱们的拼接的是吧,昨天叫坑,今天就不应该叫坑了,对吧?因为昨天你不懂,这就叫坑,昨天你今练完之后,今天这就小意思了是不是,那咱们在写的时候呢,这应该是两个单引号吧,然后接下来咱们是不是要把这里边东西加进来对吧?怎么拿呢?是不是可以通过我这个Dollar大括号的方式来把咱们这个集合呢给拿过来对吧?然后接下来拿过来之后呢,我对集合体的数据呢,来做一个我们这个分割对吧?那么用什么来分割呢?咱们来指定一下啊,那么应该指定两个单引号,中间加上我逗号。
02:06
啊,这个呢,是关于我们现在它的一个搜狗的准备,对吧,搜狗准备,那么这个搜狗准备完之后呢,那么接下来咱们是不是可以执行了呀,我们昨天不封装工具类嘛,菲离XU点我们有一个叫query list,然后呢,咱们把这个circle给传过去,然后点VR,那么这个时候呢,它返回了,对是个集合,这个集合呢,应该是放在省份吧,Pro in for对吧,这个呢,List啊pro in list对,原来呢是它的ID,现在呢是当前对这个我们这个分区中啊所有订单,它对应的一个省份的一个ID啊,这个省份ID,然后接下来。那么再往下,那么再往下的话,那这会儿啊该干什么了呢。这个比咱们这个这个这个用户这个状态啊,要稍微复杂一点,要稍微麻烦一点。
03:05
要稍微麻烦一点点。对吧,你现在把它查出来了,如果说我现在呢,要是和我们这个用户关联的话,大家看咱们在我们这个上边对吧,如果说我现在呢,要去完成咱们这个对吧是否手段的判断的话,那么你现在把它查出来之后,咱们是不是直接就可以对吧来去把这个ID给转换一下的呀,对吧,把什么把所有消费过的省外ID打过来,然后判断一下是否包含我们现在当前订单里面的ID是不是就行了呀,对吧,但是大家想一想,那么之所以之所以啊。在咱们首单判断的时候,你可以这么做,是因为我们现在如果说就算你已经消费过了,我们是不是其实只是取它的里边这一个属性,对就取谁就取他的ID对吧,别的呢,这个属性的值其实你是可以直接给他指定的,对你不需要从咱们这个HP里给你返回结果。对吧,但是我现在不一样了,对吧,我现在如果关联省份的话,我希望什么,如果说我现在啊,假如说我有个订单,这个订单呢叫OA对吧,然后接下来我现在呢,这个订单对应的省份,比如说是1001对吧,然后呢,你从咱101里边取出来一个记录对吧,它的一个ID是1001,它的名字比如说是北京,然后他这个地区编码,比如说什么他的一个我这个国际编码,比如说ISO什么什么,那你到时候是不是得把这个名字呀,什么这个编码呀,你得给订单给我赋值付过来,对吧?所以说你不光啊要你判断一下,说我当前这个记录在咱们这个HV里有没有了,对吧,你是不是还要把它的值给我拿过来呀,对吧,那如果拿值的话,那大家想一想,这个东西怎么拿呢?怎么样把这个值拿过来呢,那这块啊,其实如果这么光想的话,可能不太容易,对吧,就在这里啊,你现在哎,我现在把这个东西省份集合拿过来了,对吧,但是我怎么样把咱们这个这个省份集合里的每一个省份和我这订单给关联起来呢?
04:59
对吧,这块咱们带着问题咱们先往下写代码。
05:03
对吧,那么因为我现在往下写代码的话,大家想一想,我这个订单是不是在这儿的呀,你是不是要把咱订单中的一个一个的省份给关联起来呀,对吧?所以说那咱们肯定可以知道我这个订单,我可以去便利一下对吧?点我们现在这个报循环,每次便利呢,那你是不是可以拿到一个订单对象啊,那你要干什么呢?那我现在要给订单的属性来设置值,有哪些属性呢?那你看一看和咱们这省份相关的省份的名称,咱们现在是不是应该是没有的,对吧?那么咱们现在呢,这个订单里边它的一个省份的一个编码,对吧?这东西是没有的,然后订单里边它那个省份的一个国际编码,像这个东西是不是也应该是没有的呀?对吧?在这里order info,哎,O对吧,这这里都是没有的,那么你要给它呢,来进行一个我们这赋值,那么如果给这些属性来赋值的话,那咱们现在是不是得在便利的时候你可以。
06:04
达到咱们order info点什么,是不是可以拿到省份的ID呀,你是不是得想办法通过省份的ID把省份给我拿出来。对吧,想一想这个东西省份在哪呢?在这个集合里边了,那么你现在从我给给你这个ID到这个集合里边拿这个东西啊,根据ID到这集合里边拿咱们这个记录出来。行吗?容易吗?啊,就是根据咱们ID啊,到我的集合里边来获取到吧,咱们下一条记录,好像这个粒子集合不太容易啊,但如果说要是外B集合的话,这个事就简单多了,是不是对吧?所以说我现在完全可以怎么办呢?在这里把现在啊我这个省份对吧,给他答过来了,但是个粒子集合对不对,那么如果粒子集合的话,那我完全可以怎么办呢?我可以这样在咱们这里边去对它做一个处理对吧?对它做一个处理,然后呢,我给它转化成to map,那如果转to map的话,同学们大家想一想,这里边我到时候放的是不是,其实就是我们现在它的一个这个KV键对了呀,对吧,但是如果to map的话,你这个单值啊转不了。
07:12
对吧,你是不是得把我的结构转换一下呀,你得转化成KV建对的形式才可以呀,对吧?那么如果转化成KV建对的形式的话,那么这个K是谁,这个V又是谁呢?哎,K是idv呢,就是咱们这个GS对象嘛,对吧,所以说注意看咱们现在在这里我拿到的是一个啊这个接鉴对象,这个接对象是不是其实就是我们省份的一个接鉴对象啊对promise promise,然后呢,咱们这个省份啊。杰森object啊,省份的一个杰森项,然后接下来,那么咱们最后要干什么呢?我现在要把咱们这个省份的provis Jason啊,Object,然后点get street对吧,然后在这里应该有一个ID吧,对,然后记下来,咱们把pre啊,把这个provi对吧,这个阶对项呢,给我拿过去对吧?拿过去之后咱们现在转成mapb集合,点VR对吧?点VR然后咱现在是不是拿到了一个map集合呀,这个map集合呢,其实就是我们的per in for map。
08:24
对吧,卖。对吧,那其实这里呢,还可以再优化一下。这里还可以优化一下。咱们现在这个拿到的省份对吧?那么根据我的菲尼克斯这个工具类查询它的返回结果是什么,它的返回结果是不是一个粒子集合里面放的直接对象啊,能不能够把这接对项果转化成我一个省份对象呢?想一下啊,咱们前面好像是你给我一个接身字串,我可以给你转手么对象,但现在呢,你给我一个什么,你给我一个杰S对象,我能不能转换成咱们这个是这个对象,我原来啊这个同学他们之间是可以相互转呢,谁呢,杰森格式的字符串对吧?然后杰森对象,然后呢,转换成什么,转换成我们真正的这个对象对吧?这个对象呢,对吧,这个是杰森啊,这是杰森对象,然后这个呢是JS和轴串,然后现在呢,我想转换成我们现在本身的,比如扎对象或者SC对象对吧?这东能不能转,应该可以吧,那如果转的话,咱就找一找,看有没有这样方法啊,有没有这样方法。
09:41
那怎么转呢?对吧,首先我现在这里我的需求是将我们这Jason对象转换为咱们这个样例类对象啊,省份样例对象,省份样例类。对象那怎么转,咱们是不是可以借助一些我个Jason对吧,可以借助到这个Jason Jason它里边呢有pass是吧,PAR对吧,然后pass对吧,咱看这这里边pass object啊,然后你看它的返回的都是什么,都是JA森,然后这个呢可以转指定类型。
10:25
大家看接收的好像他好像这个pass of,这好像接收的是个string比较多一点,对吧,但是我现在需要,我需要参数是咱们这接S对象的是不是,那这个好像不太合适哪个啊,把它转成字串是吧?哎,所以说这个东西可以是吧,什么呢?说咱们现在呢,可以把这个东西J对象点什么呢?To string,对,然后接下来咱们现在呢,再来一个谁呢?咱们是不是class off对吧,然后这里是不是有一个play啊,然后呢,Provavo啊,然后把这个包给倒过来啊,这这这是不是就可以啊对吧,当然我觉得这里不太好,你想这转来转去的。
11:08
来注意看啊,咱们现在呢,除了它之外,呃,咱们呢,看还有别的方式,那么我现在呢,再去调我的鉴定方法的时候啊,其中有一个方法叫什么呢?叫to Java object。啊,就to扎,那么这个to扎up的方法呢,它需要传两个参数,这两个参数是不是还算是比较清晰呀,对吧,一个是什么,一个是咱们贴对象,那么另外一个是不是咱们类呀,对吧,虽然说叫to Java这但是咱们现在这个东西,你说我这个这个SKY呢,它对象编译完之后不也是一个自加法,就这个类编译完之后不也是自R文件吗?对吧?所以和Java是一样的啊,但咱们现在可以这样。第一个咱们province object给拿过来,第二个class of,然后呢,咱们这个是provin上面这个不要。
12:00
啊,这也不要了,然后接下来点二,我们这个V2拿到什么呢?拿到的是我们现在PROVICE1这个对象,而且它有一个好处,同学们对吧,那么它在转换的时候,我们说啊,这个东西呢,它的名字要一样,对吧?这个名字大家想一想,我现在如果要这么写的话,它和咱们这个属性肯定不一样,对你的属性里面,你看这个ID name I code,什么is so code,然后你咱们这个表里边是不是都大写的呀,对吧?它会帮你自动的去的这个匹配大小写啊,互联大小写进行匹配。啊,那么咱们先拿到这个对象之后呢,那你这块其实对吧,这个是不是也可以去改一改呀,什么呢,这个应该是provice点我们的ID,那这块呢,是不是其实就是我们这个province EVO呀,对吧?那这样的话,咱们现在呢,这个map这块应该也是我现在返回的呀,这个里边不是我们这个j object是不是一个provicevo呀,对吧?诶这块呢,注意我可以对吧,这个查询把我现在呢,从H病查询的数据呢,封装到一个map集合里面去,对吧?然后接下来拿到那个mapb集合了,拿到map部集合之后呢,那我现在其实这会是真正关联的代码,对我们这个订单数据来进行一个便利是吧?对订单数据来进行便利,然后接下来对吧,然后呢,用我们这个。
13:21
遍利出来的省份ID,然后从哪呢?从我们这个map集合中,对吧来取对应的这个数据省份对象对吧?来汇总对象,好,那这样的话,咱们现在如果要想从map集合里边来获取对象的话,咱们是不是可以这样,它里面应该有个方法吧,叫什么叫get是不是,但是我一般用这个叫什么get else它的作用是什么?同学们是不是有一个默认值啊对吧?哎,那么这块呢,咱们可以这样,对吧,把我现在这个ID呢给拿过来啊,把咱们的ID呢给拿过来对吧?然后接下来那么咱们的word值什么的没有,就给他一个抠就可以啊,但这会需要转换一下咱们上面这个IDD那个格式,对吧?大家想一想你本身啊,从咱Jason里边拿的,那么这个Jason呢,答的时候,这个东西它可能是什么,是咱字符串的对吧,你看跟它转换的时候。
14:22
它这个是不是字符串的形式,我这个呢,重新让它生成一下,我看是什么格式的来,我现在呢点VR对吧,然后这块呢,我们去对吧,拿过来大家看它这个是不是字符串的形式呀,为什么呢?因为你现在这个PRO1里边这个样里边你这ID它不是字符串嘛,对吧?但是啊,咱们这个省份的ID在我们的订单里边,它确是一个什么类型的,它却是个long类型,对吧?所以说你在取的时候,你这里就得把它转换一下呀,不应该long对吧,To string,对,因为咱们上web集合里keep自动串了,对吧,然后他拿着是long,咱们说先需要把它转换一下。
15:03
然后接下来呢,那么咱们那再往下走是吧,那么拿了之后呢,他返回的,那这个应该是一个pro in for啊,他拿到的应该是一个pro in for对吧?那注意有的同学可能会觉得说老师这里面有问题,这个pro for,这个proa它俩冲突不不同的作用范围是吧?不同的作用范围对吧?哎,那么咱们现在如果你觉得这个不好的话,我呢,给你区分一下,这个叫pro defa对吧,这个provicya对吧,其实他俩这个名字没关系的,他俩在不同作用范围里边,对吧?然后接下来,那么咱们现在已已经把这对象拿到了,你把对象拿到了,那咱们是不是可以判断一下呀,如果说我现在这个per e它要是不等于空的话,如果等于空,那说不是没取到呗,那如果不等于空,那这个时候你是不是可以给它赋值了呀,对吧,你其实可以给赋值了,那有没有必要判断非空啊这块。
16:02
应该没必要,我觉得对其你想想咱们现在在这里,我这个订单当前当前我现在这个order in for里边是不是所有的数据,其实我在拿的时候,我都是根据咱们order info里面去咱们手绘里取的呀,啊,所以说基本基本上V空的可能性很小。啊,除非你数据有问题,但有的时候我加了一个这个空的,就是为了避免啊,咱们可能发生一些控制异常啊,所以说你可以加啊,所以可以加,但其实我现在要正常的情况下,这个为空的可能性基本上没有的,对吧,如果不等于空,说明啊,咱现在对拿到咱关联的省份了吧,关联省份那就给他赋值呗,这个应该等于什么?应该等于pro for点,然后接下来这个是内吧,然后这步呢,应该等于for点,然后现在这里边这个every code,然后再往下走对吧,这里边是pro e four,然后点和现在的ISO code。X code好了,这样的话,咱们现在啊,就在这里把这个东西呢,对吧,给处理完了,但处理完之后呢,在这放循环,最后咱们把它给返过去,都返过去对吧?那咱们在这里呢,拿到这个集额之后,那咱们得把这个东西再抽取出一个stream,那这个呢,来把这个东西定一下,它里面放的含订单啊,那就是order in for,这个时候呢,加上谁了,加了provi了啊好了,大家看一看整个咱们现在的和我们这个省份啊,河南省份去关联它的代码,看一看什么样啊,看一看代码。
17:40
比咱们关联我们这个关联我们这个用户状态呢,要稍微复杂一点啊,要是复杂一点来根据我们的代码看来,接下来那咱们做测试啊,来看一看这个能不能把这个省份或者订单进行关联,对吧?呃,那么如果要做测试的话,大家想一想,我现在呢,那应该这样的,就正常情况下啊,那你最起码呢,那在运行的时候,这个东西你得请。
18:06
对吧,就咱们现在这个DB must这个应用你是不是得起起来,然后咱现在订单这个东西你肯定得起吧,对吧,然后咱们省份这个东西是不是得起啊,但其实我现在这个东西呢,我可以把它给关关掉,因为咱们是不是已经做过初始化了呀,对吧,所以说呢,咱们这个省份没有什么变化,对吧?所以说这块呢,正常,如果实际生产环境里边,它应该一直起的对吧,你不关的对吧,那咱们现在呢,这个东西我可以把这个东西不起啊,可以不起的,你也可以测试测试,你机器如果起的话,看你能不能扛得住来到达现在呢,首先这个东西我把它起起来。把咱们这个base db8这个重启一下,然后把咱们现在的订单呢给重启一下。
19:14
那咱们抽取完订单之后啊,注意我现在呢,要想看效果对吧,那要想看效果的话呢,咱们在这做个打印输出吧,对吧?在这里我们把这个东西打印输出一下,看一看咱们能不能够把把订单和他省份关联到一块啊,把订单省份关联到一块来把这东西重启一下啊,我再输出一下看效果。好了,那咱们接下来啊,那就开始来到我们这里,重新的把模拟数据生成一下,这个呢,不要了,然后来到咱们这个FT DB log下边c do VT model,然后呢,R DB log,对吧,然后现在呢,去改一下日期,然后今天呢是28号对吧,那把这个日期呢改一改,改成咱们这个28号啊,改成28号。
20:10
然后接下来,那我现在呢,去执行我们的Java杠这然后进报短来运行看效果啊同学们。那么这个数据生成完之后呢,那么咱们现在呢,要来来到我们这个奥for这里边,对吧?来看一看有没有最终的一个输出,对吧?那么如果输出的话,我现在想看的是不是这块的东西,同学们我是不是想看这几个东西啊对吧?它的省份,然后呢,咱地区以及国际编码是不是有了呀,对吧,那同学们我现在想一想,你们你们先想一想这这个单我当我执行的时候,然后呢,咱们在这看的效果,它的底层是怎么走的,这个流程是怎么走的。当我现在在咱们这里边去执行咱们这个模拟生数据的命令的时候,对吧?它的底层流程应该是怎么走的?首先第一个当你执行命令的时候,这个数据到哪了?到MYL数据库吧,对吧?那my sol数据库发生变化的话,它会把这个变化记录到哪了,是不是记录到blo里边,然后现在咱们max是不是可以监控到B到这是发生变化了,它会把咱们数据的采集到,采集到之后,然后发送到卡夫卡它的一个下划线DB_M这个主题吧,对吧?那么我现在呢,这里有一个应用程序,这个应用程序谁呢?这个应用程序就是我们这DB8,他一直在从我们这个下划线DBM的主题是不是来获取我们的源源不断过来这个实时数据啊,对吧?他把咱们所有的变化都拿过来,然后接下来,那如果说我订单呀,或者这些数据都要发生变化的话,那么这个时候我是不要做一个分流了,对吧,那分流之后呢,他要把数据给写到我们的不同的表对应的主题里面去了,对吧?然后接下来,那么咱们现在其中有一个主题叫什么呢?有一个主题啊叫什么ODS_ORDER1对吧,那它这里。
21:52
数据是发生变化了呀,那么咱们现在有一个应用程序在实时的兼顾着咱们这个主题数据的变化,对吧?所以说可以从这个主题里边呢,把这数据给拿到,那么拿到数据之后咱们干了件什么事呢?对吧?咱们其实到目前为止做的事情越来越多,对吧?先把它拿出来做结构转换,然后判断是否为首单,然后接下来,然后做一个什么的状态的修正,然后再往下走,咱们的和维度来进行关联。
22:17
然后最后对吧,咱们呢,把这个这个首单这个状态给它保存到HDL去,对吧?诶大概的保存到我们这个h base里面去啊,保存h base扭曲对吧,那么大概的是这样的一个流程对吧,大概这样流程好了,咱们稍休息会啊,稍休息一会儿。
我来说两句