本文首发于码匠技术博客
众所周知,疫情当前,常态化核酸是我们必须遵守的防疫政策,这些政策也在无形之中影响着我们的工作和生活,试想以下场景:
以上这些场景都曾在码匠身边真实发生过,所以,为了方便自己和同事的工作、生活出行,码匠想要搭建一个核酸提醒应用,该应用会
这些功能看起来简单,但实际搭建起来可能会遇到一系列问题:如何根据功能设计前端页面?如何组织与串联应用背后的逻辑?后续能否再进行功能上的扩展和复用?
看到这里肯定有很多人很好奇,想看看码匠是怎么又快又好的解决问题的。像这样一个核酸提醒的应用,码匠可以帮助您在十分钟内搭建完成,不仅如此,不管是后续的复用还是扩展,都能分分钟解决。还等什么,快来一起 get 这份教程吧!
视频教程:
https://www.bilibili.com/video/BV1Gd4y137bL?spm_id_from=333.999.0.0
该应用使用的数据源说明如下:
数据源 | 说明 |
---|---|
PostgreSQL | 本例使用 Postgres 数据库(与 MySQL 基本一致),当前案例中主要使用「核酸记录表」DDL 如下:
|
飞书 | 使用飞书发送消息需要在飞书开放平台创建企业自建应用,具体配置可查看:https://majiang.co/docs/datasource/feishu |
核酸提醒应用核心界面的 UI 布局如下图所示。终端用户登录应用,即可查看用户可以查看上次核酸日期和核酸有效天数,之后可以选择本次核酸日期,并点击确认已做核酸按钮进行提交。用户访问该应用时,会自动检测当前需要做核酸的用户,并向他们发送通知信息。
当前应用主要用于登记核酸检测情况,是一个比较轻量的场景,为了让大家使用手机就能操作,我们调整画布最大宽度为手机尺寸。
SELECT date FROM pcr_date
WHERE id = {{currentUser.id}}
INSERT INTO pcr_date (id, date)
VALUES ('{{currentUser.id}}', TO_DATE({{date2.value}}, 'YYYY-MM-DD'))
ON CONFLICT (id)
DO UPDATE SET date = EXCLUDED.date;
配置完成后,界面效果如下:
现在介绍发送通知的逻辑,该应用的通知逻辑为每当有用户进入应用即可查看或者更新自己的核酸信息,同时给需要进行核酸的成员发送通知:
const hour = moment().hour();
if (hour < 8 || hour >= 20) throw new Error("休息时间不发提醒");
// 获取所有用户 id=>date 映射
return queryAllPcrDate.run().then(pcrDates => {
const pcrDateMap = {};
pcrDates.forEach(pcrDate => pcrDateMap[pcrDate.id] = pcrDate.date);
// 遍历 userList
const needNotifyUsers = userList.data.filter(user => {
const id = user.userId;
const date = moment(pcrDateMap[id] ?? "2022-01-01");
return moment().diff(date, 'days') >= 3;
});
if (needNotifyUsers.length < 1) {
throw new Error("核酸检测均有效");
}
return {
"names": needNotifyUsers.map(user => user.name),
"feishuIds": needNotifyUsers.map(user => user.feishuId)
}
});
SELECT * FROM pcr_date;
至此一个简易的核酸提醒应用就已经搭建完成了,通过登录该应用,终端用户可以查看自己的核酸日期,同时还能提醒需要做核酸的同事及时更新核酸信息。除此之外,您还可以在此基础上进行扩展,增加新功能,例如增加一个查看排队信息的功能,或是连接其他消息平台发送通知等等。文章最开头所展现的就是一个扩展版核酸提醒应用的截图,最后也欢迎大家发挥自己的想象力再进行功能扩展,您可以将自己制作的应用发送给我们,好的应用也有机会出现在我们官网的「模版中心」哦。
码匠是一款对开发者友好的低代码平台。我们主要面向国内用户,相较于国外开发的 Admin/CRM/CMS 等后台工具,我们的 UI 界面设计更加适合国内业务场景。同时我们还整合了多款国内常见数据源,包括飞书、企业微信、钉钉、阿里云 OSS 等。不仅如此,我们还一站式提供了企业内部系统常用的租户管理、细粒度的权限控制、审计日志等功能,让您快速搭建后台应用的同时,也为您的企业信息安全保驾护航。
我们的创始团队来自谷歌、快手、百度等公司,深刻理解快速迭代的软件系统对业务的重要性和当下软件开发的复杂性,我们认为在未来软件不会是从零开发的,于是我们重新思考,创造新的工具,帮助公司更好更快地开发软件。
想要了解更多欢迎来亲自探索!
本文为原创内容,版权归「码匠」所有,欢迎文末点赞、收藏、评论!转载请联系我们。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。