凭借多维表格,我把商城搬上了飞书! - 飞书官网
解决方案

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

飞书

2024-12-23

作者:陆印章​
推荐理由​
一、关于我​
二、需求分析​
三、方案调研​
四、开发流程​
五、更多相关开发心得​
作者:陆印章​
推荐理由​
商城利用飞书的多维表格+仪表盘+自动化,实现满足需求的报告分析与展示。​
一、关于我​
大家好,我是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次,也是足够了。​
​
​
​
​
​
​
​
​
​
​
​
​
​
预约飞书企业效能顾问 深度诊断企业痛点,定制专属 AI 办公方案

先进团队,先用飞书

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

字节跳动旗下 AI 工作平台

联系我们立即试用