将模块放入到一个项目中展示_Mysql+Canal+RabbitMQ+Redis打造订单实时大屏-show模块搭建5...

今天写一下展示模块了,先说一下 show模块的主要功能,它负责消费mq中的消息,然后实时计算订单的个个指标。

1.首先先看一下项目结构,和其他两个项目差不多。

d8fe2b23deafadb558df777017b08afd.png

2.mq消费者:CanalRabbitListener

bbefb812d13f4ca58eaa8fce4de36cfd.png

核心方法:process方法负责监听mq对了。@RabbitListener(queues = RabbitMqQueueConfig.STRING),指定监听那个对了。parseMsg方法负责将接受到的mq消息解析成对应实体。statisticsOrder负责一些指标的统计。

主要的指标:

* 订单量 eye.show.order.total* 实际订单量 eye.show.order.total.reality* 待支付 eye.show.order.total.status.wait* 已支付 eye.show.order.total.status.already* 已取消 eye.show.order.total.status.cancel* 已入库 eye.show.order.total.status.inhouse* 已拣货 eye.show.order.total.status.pick* 已出库 eye.show.order.total.status.outhouse* 已配送 eye.show.order.total.status.send* 已签收 eye.show.order.total.status.sign* 订单金额 eye.show.order.amount* 实际订单金额 eye.show.order.amount.reality

statisticsOrderINSERT

statisticsOrderUPDATE

statisticsOrderDELETE

这三个方法,针对不同的事件类型分别处理。

主要就是将指标从redis中读出,然后添加或者减少后,在存入redis中,这里紧紧为了演示,没有将指标数据存入数据库,实际操作大家可以将数据存入数据中,然后通过sql脚本计算指标,计算完成后,在放入到redis中,共页面查询使用。

7223104ba1f1b985a1e489a5b61c4d1a.png

这里以订单总量举例:只要是事件类型是insert类型则,eye.show.order.total

指标+1.其他事件类型则不添加。

3.一个IndexService负责从redis中查询数据,封装成json对象返回。

f79339b2eed6dec49d2715392aed3272.png
ed66ae9fbcceac37212036213cc70f81.png

4.抽取公共模块o-eye-common

由于单个模块有公共的部分,因此有抽取一个公共模块o-eye-common。主要有一些实体了,功能配置等。

c8f6a1f0f78c951c3324a0723c922f0c.png

5前端展示

前端采用的是echarts,一个图标展示js库,挺不错的值得推荐,官网地址:

https://www.echartsjs.com/zh/index.html

5效果展示

到此所有功能已基本开发完毕,本次开发基本耗费了一个周末左右,代码有点糙了。下面展示一下效果图了。

先已启动:o-eye-order-》o-eye-agent-》o-eye-show

ef8383d390398630ba4a155c2412c43d.png

效果如图:

1cd4e395756850ef6d742240801ea3e3.png

o-eye-order模块在自动生成订单:

2c23333b29638b4da654d027a71a8c6c.png

o-eye-agent模块在接受订单,并放入到MQ中:

b23bcb4719082944af9f8e5f9fe1e9a8.png

o-eye-show模块在消费订单,并计算统计指标:

2cb68cc727d9d4e4fc5bf0451bb2a70f.png

看一下mq消息:

a8ea96314cca10c9f6b6d45012da8ab6.png

最看一下页面效果:

f59d8ca852422988817ae4637e993f87.png
cf752a4a7cc5fe2325bb5dd290948a84.png
a6da0f86d45c0d04223bceeb8956ce91.png
6573577d5e4859e98a2fe85c4eebe45b.png
c4492e03cbb8477c9cb189816834c2f2.png

前端页面写的简单了,由于时间紧,代码有点糙了,以后有时间话,再优化,谢谢大家。

最后将代码github地址贴出来,大家有问题可以提问了。

https://github.com/liflife/o-eye

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值