结论先行:场地预约系统的核心是"把每个可预约时段当成一件有库存的商品来管":5 张数据表(场地、时段模板、时段库存、预约单、黑名单)+ 库存扣减防超卖 + 到店扫码核销 + 爽约进黑名单,用低代码(Low-Code)平台 2~3 天上线。约束机制到位后,爽约率通常能从 15% 左右降到 5% 以内,场地利用率提升 20% 以上。
球馆、瑜伽馆、共享会议室、自习室的共同困境:预约靠微信群接龙,到店发现时段被重复占用,爽约了也没有任何约束。本文按"建模 → 防超卖 → 核销 → 防爽约"四步搭一条完整链路。
一、数据模型:时段即库存
| 表名 | 关键字段 | 说明 |
|---|---|---|
| 场地表 | 场地名称、类型、容量、状态、营业时间 | 一个场地/房间一条 |
| 时段模板表 | 场地(关联)、开始时间、结束时间、库存上限、价格 | 定义每天的可约格 |
| 时段库存表 | 日期、时段模板(关联)、剩余数、锁定数 | 按"日期+时段"一行,核心表 |
| 预约单表 | 预约人、场地(关联)、日期、时段(关联)、状态、核销码 | 一次预约一条 |
| 黑名单表 | 用户、爽约次数、封禁截止日 | 约束机制的数据基础 |
时段库存表按"日期 × 时段"生成行,剩余数初始等于模板的库存上限。羽毛球场地一晚 4 片场地就是一个时段库存为 4 的"商品",卖 4 份即满。
这套"时段即库存"的模型同样适用于医疗场景:口腔诊所把"医生 × 时段"建成号源行,停诊即批量释放并触发改约,与本篇的库存扣减逻辑一致,可参考口腔诊所低代码方案的号源与复诊提醒联动。
二、防超卖:下单即锁定,取消才释放
预约提交采用两段式:工作流先在事务里校验时段库存剩余数 > 0,通过则"剩余数 − 1、锁定数 + 1"并生成待支付预约单,10 分钟内未完成支付自动释放库存;支付回调确认后预约单转"已预约"。
以猫拽低代码(CatPull)为例,这一段用工作流的条件分支 + 云函数节点实现,云函数里用数据库事务与行级锁保证并发下两个用户同时抢同一片场地时只有一人成功,另一人收到"已约满"。凡是"剩余数"这种会被并发争抢的字段,扣减必须走事务加锁,这是本系统唯一不能省的技术细节。
三、页面构成:用户侧 3 页 + 店长侧 2 页
- 用户侧:① 场地列表页(类型筛选、今日剩余标识);② 时段日历页(按日期展示各时段剩余数,剩余 0 置灰);③ 我的预约页(出示核销码、取消预约)。
- 店长侧:① 预约管理页(按日期看全场地占用情况,支持人工代约与释放);② 核销与黑名单页(扫码核销、手动加减黑名单)。
日历格子组件是页面搭建的重点,时段日历页用网格布局组件按"日期列 × 时段行"渲染库存数据即可,小程序端与 H5 端共用。
四、核销与爽约:把约束做进规则里
到店核销:用户出示核销码 → 店长扫码 → 系统校验"日期时段匹配 + 状态为已预约" → 核销成功、状态转"已使用"。未到店的单子在时段结束后由定时工作流批量标记"爽约"。
爽约规则(可按业务调整):累计爽约 1 次提醒、2 次限制预约 7 天、3 次进黑名单 30 天;取消预约须在开始前 2 小时以上,临期取消同样计爽约。规则配上开约前 2 小时的到店提醒工作流,双管齐下才能把爽约率真正压下来。医疗场景在此基础上还要叠加科室、号源与实名认证,可参考医疗小程序的预约挂号与在线问诊设计。
这套时段、核销与爽约的闭环可以直接搬到宠物店洗护预约,只是提醒维度要从时段延伸到疫苗和驱虫周期,完整方案见宠物店洗护预约与疫苗提醒方案。
五、上线检查清单
- 并发抢约实测:两台手机同时提交同一剩余 1 的时段;
- 支付超时释放:未支付订单 10 分钟后库存是否回补;
- 核销容错:错日期/错场地的码能否被正确拦截;
- 黑名单生效:封禁用户提交预约是否被拒;
- 提醒触达:开约前提醒是否送达(小程序订阅消息需用户授权,注意引导)。
试运营两周后看两个数:时段利用率与爽约率,再决定是否加会员卡扣次、押金在线退等进阶功能。
FAQs
Q1:预约要收定金或全款,支付怎么接?
A:低代码平台通常通过云函数对接微信支付下单与回调,回调验签通过后才把预约单置为"已预约"并扣减库存;务必遵守"先校验回调签名、再更新业务状态"的顺序,防止伪造回调占位。
Q2:临时加开时段或场地维修怎么办?
A:店长侧支持对"日期 + 时段"直接调整库存:加开把库存上限调大即可,维修则把剩余数清零并批量通知已预约用户改期;被清零时段的存量预约单建议走人工改期或退费,留痕处理。
Q3:会员卡按次扣费的场景能支持吗?
A:可以。预约单提交后工作流先校验会员剩余次数,充足则锁定 1 次并在核销时正式扣减、爽约时扣减并标记,具体规则与会员表设计可参考会员管理专题文章,两者数据模型天然衔接。
延伸阅读
- 在线预约系统开发——预约类系统的通用设计与排队叫号扩展
- 会员管理系统设计——会员卡、储值与预约扣次的打通方案
- 小程序开发成本——算清一个预约小程序的投入与回报
- 多平台一致性——用户在 H5 与小程序两端预约体验的一致性保障
猫拽智库