00:00
嗯,好,我们继续来写数据统计模块的控制器,对吧。呃,当然我们写完控制器以后呢,我们可以使用postman呢来对它进行一个测试,对吧?呃,所以说在这的话,我们控制器呢,第一个是实时统计的控制器,那么这个的话呢,我们给它起名为real time controller吧,好。呃,当然呢,它必须是一个rest controller对吧?然后呢,我们还需要给他呃约定一下这个URL的映射对吧?那这个我们就放在statistic斜杠real time吧,也就是我们这个控制器呢,主要是针对的是实时统计这样这个组件,或者说这个页面,呃。当然因为我们没写控制器,并且没有启重新启动我们的云台application,所以说这的话呢,还是显示的404对吧?嗯,所以说在这的话呢,我们就把这些控制器呢来写一下,呃,那第一个的话呢,就是。
01:07
获取交易总额对吧,获取交易额,那这个呢,呃,我们就给它映射到一个get请求吧,那么这个get请求呢,是GMV好,然后呢,Public result。啊,我们返回的这个泛型呢,是big DEC,然后。Get g MV对吧,然后呢。Request per。等于什么呢?当然它是一个我们的一个日期类型,对吧,当然这出现了一个新的request per这样的一个注解。呃,那么这个request per它和post请求的request body有什么区别呢?Request per它是这样来带参数的,比方说我们这里面,我们访问的是一个local host的冒号8080,斜杠statistic,斜杠real time问号,哎,Date等于比如说二零。
02:15
二零杠12-19对吧,或者说二零二零十二十九对吧,那这样的话呢,它是问号,然后附带在这个URL里边的参数呢,我们就可以使用request per来来获取对吧?我们在这面我们直接返回一个result.of200success。然后呢,Statistic service.get g MV,然后date好,那这样的话呢,我们就调用了服务的get g MV,然后根据日期呢,就取出了它的交易总额,对吧?那这个除了交易总额以外呢,接下来是每个省份的交易额,对吧?那么它的呃,URL的话呢,你当然要和前端发请求那个URL呢要保持一致,所以说这的话呢,我们是province OK public result,我们的返回值呢,是一个列表。
03:22
呃,那么这个列表的类型呢,是general statistics,对吧?呃,然后呢,Get province statistic,好,它也是一个request per,然后呢,String data,然后在这的话,我们return一个result.of200success stat service.get province statistics,对吧?然后我们给它输入一个date,好这样的话呢,我们就把每个省份的交易额呢,呃,也给他编写完了控制器,那接下来的话呢,就是关键词热词统计的。
04:10
呃,这样的一个控制器,对吧?好,然后呢,Get mapping,我们这个URL呢,我们给它设置为keyword吧,Public result,它的返回值呢,也是一个list,然后gene,然后get keyword。然后呢,Stat。对吧,当然它还是一个请求参数date这样子。好。呃,那我们继续写这个控制器代码,我们继续写这个关键词热词统计的一个,呃,控制器代码,当然我在这的话呢,我return result of 200success。
05:04
Statistic service.get。呃,Keyword stat,然后把这个data这个日期给它传进去,好,接下来我们写了这个关键词,呃,热词统计,以后呢,我们就要写这个统计某一天,对吧,不同类。别商品的交易额排名,好,当然我们这里面我们还是要先定义它的ul映射,那么在这儿的话呢,我们就是一个catty gray3对吧,不同品类的这个商品的交易额排名,然后呢,Public result,我们返回的还是一个general statistic,呃,这样的一个列表类型,然后get product。Statistics对吧,然后。
06:03
Categories request,然后string data return result.of200success,然后呢,我们调用的这个服务是什么呢?我们调用的服务就是get product statistics,对吧,Group by category,然后呢,把这个日期给它传进去就可以了,好,我们又写了一个呃,这样的一个处理。逻辑对吧,然后接下来的话,我们再来写一个叫做统计某天不同。品牌的商品对吧,不同品牌的商品交易额排名好。
07:00
当然在这的话呢,我们还是一个呃,定义它的URL映射,那么它是一个trademark,然后接下来的话呢,Public result list general statistic,然后接下来的话,我们写这个get product stat。然后呢,By trademark。Request per,然后在这的话呢,是一个string date,然后呢,我们返回一个result.of,当然还是200,然后呢,Success,然后接下来的话呢,是statistic,对吧?我们的这个服务呢,我们使用的是get product stat by trademark,然后把这个date给它传进去就可以了,好,那我们现在的话呢,我们实际上实时统计的这个,呃,控制器呢,就都写完了,那我们重启一下这个。
08:02
呃,我们的后端服务,然后我们再点击一下前端对吧,我们刷新一下这个页面。呃,你就会发现,诶,它就都渲染出来了,对吧,它就都渲染出来了。呃,如果大家想看一下说前端这些数据怎么使用一叉把它渲染出来的话呢?啊,那可以大概的读一下前端的代码对吧?呃,当然我们这里面我们主要是学习后端。也就是说呃,你可以通过postsman呢来看一下它,呃返回的数据是什么对吧,比如说我在这里边,我要发送的一个请求是local冒号8080斜杠stat对吧。然后呢,Real time,比方说我这里边我要发的请求,比如说我要给这个statistic real time,然后GMV发送,我们来看一下它返回的数据是什么,对吧?GMV好,然后点击send。
09:01
哎。当然在这的话呢,它是一个400,我们来看一下啊,那这个实际上是一个get请求对吧?呃呃,我们忘记附带这个日期信息了,对吧?我们忘记附带这个日期信息了,那这应该是,呃,其实还有一个斜杠GMV对吧?问号DATE20201219对吧?啊我们再让我们试着发送一下。问号,Date等于20201219。诶,当然你可以看到,呃,这个12月19号的这个数据呢,可能是一个零对吧,它的,呃,这个交易额。好啊,那我们接下来的话呢,我们就来看一下这个表里边我们插入的这个数据,它是哪一天的对吧?呃,它是哪一天的,我们来看一下这个c house里面我们插入的这个数据,呃,它应该是20221219,对吧?所以我们在这的话呢,我们来给它改一下。
10:07
应该就有数据了,对吧。呃,2022,我们把这个中横线给它去掉,因为我也忘记我的前端我用的是什么样的格式了,对吧?哎,你可以看到。20221219对吧,我们这样去传参的时候呢,它就会返回它的额度对吧?715054.00,我们看一下前端715054对吧?呃,那么接下来的话呢,我们还可以再测试一个,比方说这个每个省份的交易额,这个是province对吧?啊那么在这里边的话呢,我们把它改成一个province,哎,你回车你就会发现它返回的是这样的一个数据,Name是省份的名字,Value是这个省份的交易额度,然后呢,渲染成这样的一幅对吧?比方说内蒙古是4188,你可以看到这儿实际上返回来的数据对不对,内蒙古也是4188,然后把这个数据呢,吐给前端以后呢,那么前端它就可以使用一叉S这样的组件呢,对吧?结合一些地图。
11:12
的数据,就把它渲染成,渲染成这样的一个东西,对吧?包括你可以看到说,诶我们这个热磁图呀,对吧?呃,包括什么品牌销售排行呀等等等等,那么他都已经渲染了出来,对吧?他都已经渲染了出来啊,我们在这里的话,我们可以再刷新一下,看一下他,呃,针对我们后端呢,发的一些请求,对吧。我们来看一下。哎,你可以看到,诶,那这些请求呢,就呃。比如说在这里边啊,除了user info以外呢,比方说它这还有一个关键词的对吧?那你可以看到他发的请求是staic real time keyword data date等于20221219对吧?然后我们点击response,诶,你就会发现这个就是我们返回来的name呢,是我们的词对吧,关键词,然后value呢,是这个关键词的热度,然后呢,我们就可以把它的这个,呃,就是说按照它的热度呢,然后渲染出这个关键词不同的大小,对吧?那这个就是热词图了,对吧?那么品牌销售排行和品类销售额的占比呢,其实也是一样的,当然你在这儿你点击这个。
12:22
访问流量统计的时候呢,你就会发现又出现两个404,因为我们有关访问流量统计的这个控制器呢,我们还没有进行编写,对吧,我们还没有进行编写,所以说接下来的话呢,我们就来。写一下,呃。这个控制器的代码对吧,我们写要写的控制器代码呢,那就是traffic controller对吧。Traffic controller对吧,那这个类。啊,那这个控制器的代码呢?当然我们在这里面我们还是要先给它打上一个比如说rest controller这样一个注解,然后我们还需要打一个,呃,这个request mapping这样的一个注解,也就是定义它的URL对吧?那它ul呢,就是the take,斜杠visit对吧?好,然后呢,我们再来写两个API对吧?那么第一个API的话呢呢,就是它的流量统计,那在这的话呢,我们的这个get请求它发送到哪里呢?Get traffic stas对吧?然后呢,我们这里面有几个参数,第一个参数是配置,那这个配置的意思呢,就是我们的分页对吧?那么第二个的话呢,就是limit,也就是我们每一页有多少条数据,然后呢,Public result。
13:48
我返回的呢,当然是一个分页数据对吧?那么这个分页数据里面呢,装的是啊,Traffic statistic,好,我们的这个方法名字叫做traffic statistic OK,然后这儿的话呢,是一个路径变量inte格尔配置,然后还有一个路径变量对吧?那当然这个是integer limit,那么当然第三个。
14:18
变量类型是什么呢?第三个变量类型呢,就是一个traffic statistic啊,也就是说它的这样的一个呃,Traffics VI对吧,这个实际上是呃,我们前端发过来以后呢,它会序列化成一个traffics的这样的一个对象,然后呢,我们就把它返回就可以了,对吧?然后呢,Return result.of200success对吧?然后呢,我们来调用呃,我们的这个统计服务对吧,那就是statistic service。第二,Get traffics sta,好,那么这里边的话呢,它涉及到这么几个参数对吧,第一个就是配置分页参数,第二个是limit,对吧,就是每页有多少条数据,那么第三个的话呢,就是traffic.get dt对吧,就是说它这个是它的呃,什么呢,它的日期,那么第四个的话呢,那就是你是最近几天的数据对吧,Get recent days哎,这样的话呢,我们就可以返回数据了,对吧,我们就可以返回数据了。好,那么第二个的话呢,就是用户路径分析的这样的一个API。
15:34
Get mapping对吧?然后呢,它的这个URL呢是get配置pass,好,Public result,它的发型呢是一个map,然后呢,String类型,它的呃,Value呢是object类型,然后呢,Get配置pass。Traffic statistic哎,这个就是我们的一个参数对吧?它get请求带的这个参数呢,就会序列化成一个traffic stat这样的一个对象,然后呢,我们return result.of200success,然后呢,我们调用的服务呢,是get配置pass count。
16:22
Traffic好,那这样的话呢,我们这两个呃,URL的处理逻辑呢,也就写好了,然后接下来的话呢,我们还是要重启一下我们的这个应用,对吧,重启完应用以后呢,我们就来访问一下。我们就来访问一下啊,来看一下它渲染出来的是什么样子,对吧?呃,在这边我们点击前端,然后我们点击访问流量统计,我们刷新一下对不对,你可以看到他已经不再报404了,然后我们选择一个日期,选择个有数据的日期,对吧,比方说6月29号。哎,你就会发现它就已经渲染出来了,对吧,我们现在我们再来检查一下,看一下它的代码,我们来看一下它的这个network,它访问的请求对吧?呃,访问的呃,这个后端的呃,URL对不对,我们把它先给它删除掉,把这些所有的请求,然后呢,我们点击一下。
17:18
7月6号吧。我们来看一下这个首先10RECENT days等于七,然后呢,DT等于2022-7月6号对吧,这个是传过去的参数,然后这个呢,就是它返回来的呃,数据了,对吧,这个就是它返回来的数据了,好啊,那在这儿的话呢,我们可以看到说这个路径。数据并没有任何的返回,对吧,路径数据并没有任何的返回啊,我们看一下它这个。用postman,我们来看一下这个数据对吧?那么在这里面的话呢,诶,我把它取代一下CTRLV,然后点击send,你可以看到它没有任何的数据出现,对吧?我们看一下它是不是后端出现了问题对吧?我们在这边看一下,他说no column recent days in war class对吧?那这个就是我们的CQ查询语句呢?呃,出现了问题对不对?那在这的话呢,显然我们应该把它改成什么呢?改成recent_days对吧?然后重启这个后端服务。
18:29
对吧,重启这个后端服,我们来看一下它能不能恢复正常是吧?啊,当然它肯定是可以恢复正常的,只不过我们在这里边的话呢,我们就来看一下这个后端的bug呢,如何去进行调试,对吧?你需要呃,在这个控制台里面呢,看一下报什么错误,然后在这的话呢,我重新进行一个刷新。呃,当然我们可以先拿postsman来看一下这个请求有没有数据,对吧?我们点击你会发现,诶这个数据都回来了啊,它的key呢,有一个是links data,那么这个S是第十步支付对吧,Target就没了,对吧?因为你第十步支付呢,你就已经完了,然后它的值呢是176,第一步呢是访问首页对吧,我们来看一下,第二步呢,是访问我的。
19:15
页面对吧,或者说第二步也可以是搜索对吧?我们需要把这样的一个Jason的数据结构呢,来给它可视化成一幅图,对不对,可视化成一幅图,我们来看一下它可视化出来的结果。哎,7月6号的话,我们就选择7月6号的数据,你会发现诶。上面这个我们大家应该都能看得明白对吧?序号,然后渠道访客人数,绘画平均停留时间,以及会画数,还有跳出率,那么下面这个的话呢,就是用户的一个路径分析,对吧?今天7月6号这一天的一个用户的路径分析,你可以看到,诶第一步呢,是一个呃访问首页,那么第二步的话呢,有可能是访问呃搜索这个页面呢,会比较多访问呃商品的详情页的相对少一点,访问商品的这个列表也相对少一点,访问访问自己的这个页面的相对少一点,然后第三步的话呢,对吧,它转化率你就可以看到它,呃访问商品的列表,然后第四步呢,访问商品详情,第五步呢,对吧,登录,第六步呢,可能又是一个商品详情,第七步加车,第八步对吧,Trade交易第九步呢,然后进行一个支付对吧,这个就是我们呃,返回的这个。
20:38
Jason数据列表对吧,这个Jason数据也就这个data呢,它渲染出来的一个样子,当然就是说你想要呃,了解它具体是怎么渲染的,对吧?具体使用这个1ART,呃,这样的一个组件,具体怎么去渲染的,你可以去查一下这个前端的代码,对吧。查一下前端码好。当然我们前端代码呢,呃,我们就其实就不详细去看它了,对吧,其实就不详细去看它了,呃,实际上这里面的话呢,这个用户路径的分析呢。
21:10
主要就是在哪里呢?主要就是在这个API。Get pass count对吧?从MYSQL里面取出数据来以后呢,组成。这样的一个linkx data以及node data对吧?呃,这两个KV键值队呢,给它组成一个哈map,然后返回就可以了,对吧?那么返回以后呢,那么前端呢,就可以用一叉S这样的一些组件呢,把它渲染出来,好,那这样的话呢,我们数据统计这个模块呢,就已经讲完了,对吧?就已经讲完了,呃,可以看得出来呢,它其实并不是太复杂啊,这里边的关键要点就是前端。想可视化一些数据出来,那么他要和你商量好,你怎么样把符合前端需求的数据取出来,然后返回给前端,对吧,它其实主要就是呃,它的关键点呢,是在这里,好,我们现在呃这个数据统计模块呢,就已经讲完了。
我来说两句