凭借多维表格,我把商城搬上了飞书!

凭借多维表格,我把商城搬上了飞书!

开发者广场内容精选NaN-NaN-NaN
解决方案
作者:陆印章
推荐理由
商城利用飞书的多维表格+仪表盘+自动化,实现满足需求的报告分析与展示。
一、关于我
大家好,我是sekift,来自广州一家提供唱歌跳舞设备、服务的公司,担任后端开发工程师。
这只是一个简单的案例,但是却是一个很大的改变,是高效的代名词。
二、需求分析
我这边有一个商城,每天销售的订单大概是千级别。因为是有关钱的项目,所以公司上下都非常关心,而且各部门、职位关心的部分还不一样,例如领导关心销售件数、销售总额,运营关心topK、库存,客服关心发退货,技术关心运行健康等。另外重要的是,可以在下班后也能看到数据和分析,还有条件推送功能。
在此之前是用自研的BI来实现的,但是只满足了上面部分的需求,而且仪表盘有限,展示粒度不足,因此改用飞书的多维表格+仪表盘+自动化来实现以上要求。
本文介绍领用飞书多维表格来实时记录数据、实时分析。即:实现用户程序向飞书多维表格发送数据,飞书将其记录到表格,然后根据表格创建各种仪表盘。被授权的用户可以打开这个仪表盘,这样就可以随时随地看到商城的销售情况。成本极低,操作简单。
三、方案调研
上面说到,在此之前是用公司自有的BI来实现的,其流程大概如下:
BI的仪表盘表现能力相对有限,投影到大屏上只能看汇总后的量,另外的那些需要则要利用卡片信息发送飞书群来解决。
改用飞书多维表格之后,流程变成如下:
250px|700px|reset
至此,各需求几乎全部满足。
四、开发流程
4.1 多维表格设置
首先在飞书中创建一个多维表格,如下:
或者:
250px|700px|reset
另外从网页后台创建也是可以的。然后打开多维表格,就像创建数据库的表一样,创建字段(即字头)。
250px|700px|reset
以上,#的表示数字,A表示文本,而下单时间是时间的格式,但无法发送时间字段的数据,因此可以将其设置为“自动填写”,尽管有一些误差,但不足构成问题,如下:
而最后的“天”、“小时”是利用函数从“时间”字段解析出来的,表格提供了非常多的函数,可用自行选择,如下:
250px|700px|reset
至此,多维表格部分已经完成。
4.2 飞书捷径设置
点击左边列表内的“工作台”,找到“飞书捷径”打开。
注意他又名“飞书机器人助手”。点击“自己探索”进入。
250px|700px|reset
进入后,如果助手的tag不是“我的指令”的话,请先切换到“我的指令”,然后点击“新建机器人指令”,如下:
250px|700px|reset
在出现的界面中点击“选择触发器”:
拉到之后,选择“webhook触发”:
250px|700px|reset
在弹出的页面中,复制webhook地址,并保存好,然后还有参数需要填的,它的格式是JSON字符串,需要对应到多维表格上创建的字段。key可以自起,value需要区分数值和字符串(在这里,value带引号的是字符串,不带是数值),例如我的已经填在上面了。然后点击完成。
250px|700px|reset
这样,“触发器”已经完成,在他返回的当前界面,再点击“选择操作”:
在弹出的界面选择“新增多维表格记录”:
250px|700px|reset
接下来选择数据表,点击下拉会列出属于你的多维表格,选中刚才创建的,并点击展开的“数据表”即可。
250px|700px|reset
接着设置“新增内容”,这时候要注意,需要将每个多维表格的字段对应好刚才创建的JSON字段,不能有错,否则数据将错误。完成后点击“完成”。
此时回到助手的界面,点击右上角的“启用”,保存并应用当前流程:
250px|700px|reset
至此,设置部分已经完毕。
4.3 程序开发
因为是发送HTTP POST请求而已,因此开发异常简单,先定义两个VO:
@Data
@NoArgsConstructor
@AllArgsConstructor
public class MedaTriggerVO {
private MedaTriggerDataVO data;
}
@Data
@NoArgsConstructor
@AllArgsConstructor
public class MedaTriggerDataVO {
private Long uid;
private String goodsName;
private Integer goodsId;
private Integer count;
private BigDecimal price;
private BigDecimal couponPrice;
private Long score;
private Integer userCount;
}
然后,按字段拼接数据,这里的triggerUrl就是刚才创建的webhook地址:
MedaTriggerVO triggerVO = new MedaTriggerVO();
MedaTriggerDataVO dataVO = new MedaTriggerDataVO();
dataVO.setGoodsId(detail.getGoodsId());
dataVO.setGoodsName(detail.getGoodsName());
dataVO.setCount(detail.getGoodsNum());
dataVO.setUserCount(detail.getUserNum());
dataVO.setPrice(detail.getPayAmount());
dataVO.setScore(detail.getScoreAmount());
triggerVO.setData(dataVO);
feishuNotify.sendNotify(JSONObject.toJSONString(triggerVO), triggerUrl);
最后发送POST请求:
public void sendNotify(String message, String triggerUrl) {
HttpHeaders headers = this.buildJsonHeaders();
HttpEntity<String> formEntity = new HttpEntity<>(message, headers);
FeishuJsonRslt resp = restTemplateStand.exchange(triggerUrl, HttpMethod.POST,
formEntity, FeishuJsonRslt.class).getBody();
log.info("飞书消息发送结果:{}", resp);
}
private HttpHeaders buildJsonHeaders() {
HttpHeaders headers = new HttpHeaders();
MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
headers.setContentType(type);
headers.add("Accept", MediaType.APPLICATION_JSON.toString());
return headers;
}
这样,当有订单来时,就会实时上报给飞书多维表格:
250px|700px|reset
4.4 仪表盘设置
数据有了,接下来就是重头戏:分析展示。在打开的多维表格左下角,点击“新建仪表盘”:
有很多图表可供选择,自行选择一个最适合的,例如“柱状图”,点击:
250px|700px|reset
点击之后,会有一个默认的设置,但这个设置一般不是自己所需,例如只想看当天的数据,可点击“筛选数据”:
250px|700px|reset
之后,可以设置很多条件,这里将下单时间设置为今天即可,其他的雷同。点击保存:
250px|700px|reset
操作后台的数据会实时在左边的图标展示出来的,接着,设置“横轴”的数据,这里我想看每小时的销售金额,那么横坐标选择“小时”字段:
排序那些可以按自己的意思选择,一般可先用默认的,然后再设置“纵轴”,这里需要展示支付金额的合计,所以选择“统计字段数值”和“支付金额”,然后点击确定。
250px|700px|reset
这样一个仪表盘就设置好了,如下:
250px|700px|reset
接下来,可以按自己所需创建更多仪表盘,例如:
还可以按要求创建很多不同的仪表盘,例如我创建的:
250px|700px|reset
4.5 自动化设置
自动化可以实现,新增特定记录时、到某个时间点时向飞书人员或群发送一条特定信息。设置也很简单,首先打开多维表格,切换到仪表盘(注意不是数据表),然后点击中间右上方的“设置自动化发送”:
250px|700px|reset
点开之后,一般来说只需要设置如下3个地方即可(当然想个性化也可以微调一下),如下:
250px|700px|reset
右边的条件有6种情况可供选择,这里我想在每天快结束时给飞书发一条总结报告,因此我选择“定时触发”,并且时间设置为23:55,每天重复:
250px|700px|reset
左边是操作,也有10来种可供选择,这里选择向飞书发送信息,接着选择接收的人或群,然后点击保存并启用:
下面是在飞书上的展示效果,报告会用“多维表格助手”机器人发送,点击图片可以看报告大图,点击蓝字可以进入仪表盘看详细情况:
250px|700px|reset
也可以设置特定条件发送信息,例如:
250px|700px|reset
到这里,我的整个商城订单已经搬上飞书,并且能够实现实时通知,部分的显示大屏也由BI换成了飞书仪表盘:
五、更多相关开发心得
改为飞书仪表盘后效益巨大,好评如潮,还接到其他部门的建设请求:
250px|700px|reset
开发的工作量上,仅用半天就完成了所有的设置与开发工作,不过仪表盘的设置是选择最适合的,是循序渐进的,所以调了2天。但是这种方式也有一些限制:
1.多维表格在免费的情况下,只能储存2万条数据。不过对于我来说足够了,可以定期删除一些数据,因为一般只看一、两天实时的订单信息。
2.同步的数据格式只能是数字和字符串,其他的都不支持,例如时间格式。于我,是设置了自动生成时间来解决。
3.自动化通知免费版每月只有200次,次月1号重置。对于我来说每天3次,也是足够了。
先进生产力和业务协同平台
联系我们立即试用

先进团队,先用飞书

欢迎联系我们,飞书效能顾问将为您提供全力支持
分享先进工作方式
输送行业最佳实践
全面协助组织提效
联系我们立即试用