00:00
还是来看一下关于我们这个发布查询当前日活数的一个我们这个接口啊吧,那这个思维的方法呀,那目前咱们已经完事了,呃,那么service完事之后,那咱们是不是就开始对去编写我们的CTRL里边代码了呀,对吧?呃,那么如果说啊,这个编辑看就是大家在编程的过程中呢啊碰到一些警告,比如说呢,这个可能这个遇到的就在注入的时候呢,那这块提示报错吧,那这块其实就是相当于一个警告级别调的不要太高了,你可以适当的调低一点,具体怎么调,你们碰到的时候呢,可以参照这块啊,再到这里去调一下就行啊调一下就行,呃,然后接下来呢,那么咱们就来看一看我的CTRL里面怎么样啊,把我们现在呢,查询我们当天日活总数的这个东西,给他发布出接口啊,发布到接口,呃,那么这个呢,就得来到我们这。
01:00
它们的CTRL里边,首先呢,它的CTRL,那么CTRL咱们是得标记一下,交给我们容器去管理啊,所以说在这个类的上面呢,再加一个柱体,这个注体应该是rest control,把rest control,然后接下来,那么咱们现在呢,那提供一个我们这个方法,那么这个方法呢是什么?那看一看你当前的它的一个请求这些路径是什么,对吧?如果说你要想去查询他日活的话,对吧,那么咱们把这个打过来啊。一个呢,是我们当前它的一个访问路径啊,这第一个啊,那第二个呢,那么除了访问路径,那么咱们再给他一个想一个数据啊,这个数据想一什么样的一个形式啊,想一个数据,这个数据的格式呢,咱们在这呢啊,给他想一个这样一个数据啊,像这样数据啊好,那如果说我现在呢,来知道咱们现在就已经约定好了,他通过咱们现在这个地址对吧?来啊对我这个这个这个这个去访问我当地的接口,然后呢,咱们肯定需要响应这样的数据啊,那么接下来咱们来定义方法,这个方法它的返回值同学们。
02:12
这个东西对吧,一看咱们上午分析过是不是跟list,然后里边呢,是不是嵌套的我们这个map呀,对吧,其实呢,你可以直接这样什么呢?Object啊,如果说你用rest control的话,那么这个时候它在返回的时候,它呢会自动的啊,会自动的帮助你把咱们当前想的对象转换成接格式字串给它返回,如果你不用rest ctrl的话,假如我就用CTRL,你要想实现同样的效果,那么这块呢,你需要加上一个注解,这个注解呢叫response body。啊,这块你知道就行,对,这知道就行对吧,那么咱们现在呢,用的是我们这rest controltrl了啊rest controltrl了对吧?然后接下来返回的呢,是一个object,具体是什么,咱们到时候再说对吧?哎,咱们一会封装嘛,对吧,然后接下来那么这个名字叫什么呢?比如说我现在呢,是返回日活对吧,它可发送这样的请求对吧?那么咱们这个名字呢,比如叫real time totalle对吧,然后接下来咱们呢,再去接收参数对吧?那么具体的方法上怎么样去把这个请求接收到的,在方法是不是得加一个注解呀,这个注解叫什么来着?Mapping什么mapping是不是得有一个叫request mapping是不是这样的一个重心,然后接下来在他当前注解里面呢,把你要拦截的请求给它放回来,因为你是不是要发送到这样请求啊,那我现在把这请求呢,给拦截到交给这个方案去处理,而且你在发送请求的时候,你是给我传一个这个参数过来啊,对吧,那么所以说呢,咱们在这里我要去。
03:49
接收你的参数,原来呀,咱们在接收参数的时候,同学们,我们是不是通过什么request body来接收的呀,现在人家在传参数的时候,人家可没有放在body里边,是不是就直接通过它参数传回来呀,那这个就什么呀,其实你可以直接通过request对吧,Per对吧,来接受就行对吧?然后这里传什么参数呢?传的是我们现在呢这个date,那我就定一个变量来接收对吧?其实如果说同学们你这里啊,你不加这个东西也可以,你不加这个东西也可以,那不加的话呢,它会直接的是从你这里把这个参数呢给它取过来。
04:26
呃,但假如说有的时候呢,他这个名字叫。Date我能想叫DT对吧,那这个时候呢,接收不到它能根据什么再根据名字去接收呢,对吧?那你如果说我要想接DT对吧,那这个时候呢,那你得把这个能西加上什么呢?Request per表示的是从参数里边取一个叫D的参数,然后将这个参数赋制给DT这个变量啊,将它复制给咱的变量,对吧?然后接下来,那么你现在拿到这东西之后呢,那相当于把请求啊给拦截了,然后呢,把咱们现在这个参数呢也接收到了,对吧?那么你现在是不是就可以考虑是不是返回咱们这个内容了呀,那么返回的话本身呢,是一个接森数组,我们说我第个集合来封装一下对吧,那么这个集合呢,是我扎了U它的一个集合,那么集合里放什么呢?放的是我们这个map,这个map里面放的什么呢?是不是应该是string,然后接下来除了这个这个key对吧,String型,然后咱们现。
05:30
在这个value大家看一看,这里除了我们现在这个字串之外是别的呀,所以说呢,那咱们应该把它定义成object的object,然后这个呢是我们啊这个U求map,然后比如说这个叫RS list啊as list,然后呢,又一个我们的every list,对new list对吧,然后把咱们现在这里边这个泛型呢,看成C给它拿过来放在这里对吧,放在这里是吧,然后接下来就实这个啊,你如果要是我们这无以上编译的话,你可以不加。
06:05
啊,我可以不加对吧,因为这里在七的时候,是不是有一个叫钻式表达式啊,它根据前面内容呢,来自动的去把它推断出来,对吧,然后接下来,那么最终呢,咱们给它返回,返回谁呢?把RSD给它返回回去对吧?那这样的话,咱们现在整体架子打起来了,但是这里边还没有内容,对吧?那我现在这个集合有了,但咱们是不是得处理一下当前我们的例子里边的一个一个的卖卖呀,对吧?因为你想一想,我这里不光是日活,可能还有别的信息,对吧?那么咱们这里呢,这个日活呢,我动态获取,像这个呢,我就写死就OK了,给他展示一下就行,对吧?那么如果你现在呢,要这样去返回的话,那这里咱们是不是还得去创建一个map集合呀,所以说呢,在这里我定一个map string object,这是谁呢?这是我们dau map,你有一个哈希map对吧,你有一个哈希map对吧,然后接下来,那么咱们现在呢,在我们这个map里边。
07:06
那么你得往里放数据,放什么呢?第一个咱们呢,往里边put,这里边是不是有个ID这样的属性啊,这个ID是什么?这个ID其实就是标记表示我当前呢是日活啊,就是咱们现在在我们展示的时候,同学们啊在这里,那么它在点击我们现在这块内容的时候,那么他呢,会给他点击事件传一个标记过去,就把谁传过去,把Du传过去,然后到时候你在处理的时候呢,你根据诶你当前显示的是什么,是Du啊,还是我们的midd啊来来做展示,就这块的展示要根据你的ID呢,来把它查出来啊,要根据ID把它查出来,好,那我现在这里边ID有了,除了ID之外,这里是不还有个名字呀,对吧?然后接下来咱把继续再往下走,这里边呢,再给放一个属性叫name,然后它的值是新增日活,那么再往下呢,咱们再来一个,还有一个什么呢?还有一个value,那具体的值是什么?这个东西大家想想日。
08:06
脱,咱不应该写死了,到这块这个东西咱不应该写死了,对吧,那不写死的话,那咱们现在怎么来获取呢?我是不是得脱单service有的方法一查询是不是就可以获取到了呀,对吧?所以说呢,那这个时候在CTR里边,那我肯定要调咱们的service,如果CTRL调service的话,大家想一想,你目前是不是得先把service给注入进来,怎么注入呢?通过W0O to where呢?然后接下来将我们的ES service给注入进来,将ES service注入进来,注意咱们现在这里边我指向的是ES service实现类吗?没有对吧,他一看我现在呢,需要一个这种类型的这样的一个属性,那么它会从我的容器里边找到咱们当前ES类型的实现,然后呢,给你注入进来,咱们当前实现是不是就ESM撇L了,对吧?它自动帮你来进行注入,对吧,那么如果注入的话,你就可以使用我们现在这个service,那么怎么来用呢?咱们这个service里边有一个方法叫概。
09:06
Du total对吧,那么它需要传一个参数收集咱们那个日期呀,对吧,那么这个方法呢,它返回啊,一个浪的型数据,那么大家想一想,有没有可能我在查询的时候当前日期没有数据啊。有可能吧,对吧,那所以说如果说我们现在这个dau total没有数据的话,那么这个时候呢,它应该等于我们闹,那么如果等于闹的话,咱们现在呢,往里面放,你不能放一个no过去,咱们是不是给他一个零就可以了,对吧?否则的话,如果查到数据的话,那么这个时候呢,咱们也往里面放个数据,这个数据是不是就咱们的dau total啊,这个呢,就是我们DA total好了,那这样的话,咱们现在呢,关于我们这个map的处理完事了,那么这个map处理完之后呢,那你别忘了,你这个map你是不是得放到咱Dis里边来管理啊,所以说呢,这里RS list.ad把谁呢?把dau map给添加进去,对吧?到目前为止,咱们现在呢,把这个东西放到我们现在这个粒子集合里面去了。
10:09
能跟上同学们。可以跟上吗?等哪块有问题随时反馈啊,随时反馈。然后像这块呢,这个东西咱们就不做这个功能了,我直接呢就把这个数据写死就可以对吧,比如说我现在呢,再来一个麦克RC啊,那么这块主要干什么呢?这块处理的就是我们现在新的设备的数据了,比如这个叫设备m mid啊,然后接下来这块呢,CTRLC啊,然后呢,这块不需要啊,然后这块呢,给留一个就行啊,留一个就行。好,那么他呢,现在我需要传什么,如果新增设备的话,ID是new有m midd啊在这里ID是这个,然后这块呢,是新增我们这个设备啊,然后这块呢,其实是把这个对给加进去,这一个总数啊,总数随便写一个对666,然后呢,咱们现在把它也放进去啊,也放到咱的集合中去啊,也放接出去,然后最后呢,把这个粒子集合给它打回去,那这个呢,是关于我们现在啊在CTRL里边它接收请求,以及呢,调用我们的应用层的方法来获取数据,然后最终把这个东西啊给我们的客户端响应回去啊给它响回去,那接下来咱们是不是就可以测试一下呀,看一看对吧,我现在呢去访问啊,去访问你能不能够什么呢?能不能够去得到数据啊,能不得到数据,那如果想测试的话呢,那么咱们在这啊启动一下我当前的一个。
11:55
部的项目。把咱们那个分部的项目呢给启动一下。
12:09
好了,那么咱现在的端口号是8070,然后接下来咱们对它呢,来做一个我们的访问,那应该是logo号的本机吧,然后呢,端口号是8070,那你在访问的时候,咱们这个地址应该是real time,然后接下来是不是有一个total啊,对吧?然后接下来应该传一个date过去,这个是我的参数,对的,等于什么呢?2020杠幺零杠S,然后访问一下啊来大家看,那么它响应的内容是不是咱们日活的数据可以接的形式给你返回来,咱们现在新的设备是不是也以这些形式给你返回来了,但是同学们人家要求你对吧,这个路径呢,不是logo host。他在问的时候,他不他的是什么啊,他问的这你要他的那怎么办。
13:03
是不是也就是我现在在访publish的时候,其实访问也是log host的呀,对吧,那么是得做一个映射呀,对吧,那我是不是应该改一下我的host映射文件。啊,改后的文件这个事你们应该做过吧,咱们现在这个文件在哪呢?C盘,然后接下来Windows,然后呢,C32是吧?对C32,然后接下来drivers这里边有一个ETC对吧?来它drivers里边这里边有一个EDC在它下边是一个host对吧?来那么在这里呢,注意啊,那我加了一个这样一个映射。对吧,就是我现在呢,加了一个这样映射对吧?那么加完这个映射之后呢,那你在访问publisher的时候,其实和访问我们现在这个本机是不是其实一样的呀,对吧?来那呢,现在呢,来通过publisher来访问一下,对吧?通过publisher来访一下,大家看这个效果是不是一样的呀,那这样的话,咱们现在啊,这个日活这个数据接口有了,对日活数据接口有了,那么到时候的前端它就可以从我这个地址对吧,来获取我们现在新增的日活数,以及呢新增的设备数了,那具体怎么展示咱们就不管了,对吧,一会咱们会看效果好了把这个说明。
我来说两句