随着线下DIY娱乐场景的需求增长,无人自助拼豆作为轻资产、低人力成本的新业态,逐渐成为商业点位运营的热门选择。本文基于成熟的无人共享系统技术栈,从架构设计、功能实现、软硬件对接、落地部署四个维度,完整梳理无人自助拼豆系统的全流程实战方案,所有技术方案均经过线下场景验证,可直接复用落地。
一、无人自助拼豆系统核心架构设计
本系统采用前后端分离、软硬件一体化的分层架构设计,技术栈选型参考了主流无人共享类系统的成熟方案,兼顾稳定性、扩展性和跨端适配能力:
架构分层
- 终端层:包含线下智能拼豆材料柜、门店门禁、监控设备、环境传感器等物联网终端,负责执行指令、采集设备状态和环境数据。
- 数据层:采用MySQL 8.0作为核心业务数据库,存储用户信息、订单数据、设备信息、库存数据等;采用Redis作为缓存中间件,存储用户登录态、设备临时指令、热点库存数据,降低数据库压力。
- 服务层:基于Spring Boot + MyBatis Plus搭建后端微服务集群,拆分为用户服务、订单服务、设备服务、库存服务、统计服务五个独立模块,模块之间通过RESTful接口通信,支持独立扩容和迭代。
- 展示层:分为三个端:用户端采用Uniapp(基于Vue语法)开发,支持小程序、H5、APP多端适配,满足不同用户的使用习惯;管理后台基于Vue + Element UI搭建,供运营人员进行全链路管理;设备运维端采用小程序开发,供运维人员快速排查设备故障、盘点库存。
架构优势
该架构复用了无人售卖、共享体育场馆等成熟场景的验证方案,开发成本低、迭代速度快,支持二次开发,无IP和域名限制,可根据不同运营需求快速调整功能模块。
二、核心功能模块技术实现
系统功能分为用户端、管理端、物联网控制三个核心模块,以下为核心功能的实现逻辑:
用户端核心功能
用户端参考无人共享柜的使用流程,结合拼豆场景做了定制化开发:
- 到店导航与预约:用户可在小程序内查看附近的自助拼豆点位,查看点位的空闲座位数、材料库存情况,支持提前1小时预约座位,预约成功后预留座位30分钟。
- 扫码开锁与材料取用:用户扫描材料柜,后端校验用户状态无异常后下发开锁指令,用户可按需取用拼豆颗粒、工具、底板等材料,柜门关闭后自动统计取用材料的品类和数量。
- 订单结算与成品寄存:用户完成创作后,可选择按材料用量或者使用时长结算,支持将成品存入门店的智能寄存柜,设置寄存时长,到期前自动发送提醒。
核心接口示例(开锁逻辑):
java
@RestController
@RequestMapping("/api/device/cabinet")
public class CabinetController {
@Autowired
private CabinetService cabinetService;
@Autowired
private OrderService orderService;
@Autowired
private UserService userService;
/**
* 材料柜开锁接口
* @param req 开锁请求参数:userId、cabinetId、positionId
* @return 操作结果
*/
@PostMapping("/unlock")
public Result unlock(@RequestBody CabinetUnlockReq req) {
// 校验用户状态:是否存在未结清订单、是否被拉黑
if (orderService.countUnpaidOrder(req.getUserId()) > 0) {
return Result.fail("存在未支付订单,请结清后再操作");
}
if (userService.getUserStatus(req.getUserId()) != UserStatusEnum.NORMAL.getCode()) {
return Result.fail("用户状态异常,无法操作");
}
// 校验柜子状态:是否在线、是否故障、对应格口是否为空
Cabinet cabinet = cabinetService.getById(req.getCabinetId());
if (cabinet.getOnlineStatus() != OnlineStatusEnum.ONLINE.getCode()) {
return Result.fail("设备当前离线,请尝试其他点位");
}
if (cabinet.getFaultStatus() == FaultStatusEnum.FAULT.getCode()) {
return Result.fail("设备正在维护,请稍后重试");
}
// 下发开锁指令到物联网平台
boolean cmdResult = cabinetService.sendUnlockCommand(req.getCabinetId(), req.getPositionId());
if (cmdResult) {
// 生成预订单,记录用户、设备、格口信息
orderService.createPreOrder(req.getUserId(), req.getCabinetId(), req.getPositionId());
return Result.success("开锁成功,请取用完材料后关闭柜门");
}
return Result.fail("开锁失败,请稍后重试或联系运维人员");
}
}
管理端核心功能
管理端覆盖全链路运营需求,包含门店管理、设备管理、库存管理、订单统计、用户管理、权限配置六大模块,支持自定义统计报表,可按天/周/月查看不同点位的营收、库存损耗、用户复购等数据,针对拼豆场景还定制了材料损耗预警、成品寄存到期批量提醒等功能。
三、软硬件一体化对接方案
无人自助系统的核心稳定性依赖于软硬件的可靠对接,本系统采用MQTT协议实现后端与物联网终端的通信,对接流程如下:
- 设备预注册:所有智能设备出厂前预先录入设备标识、秘钥到物联网平台,设备上线后自动向平台发起认证,认证通过后保持长连接,每30秒发送一次心跳包,后端实时更新设备在线状态。
- 指令下发与回执:后端需要控制设备时,通过物联网平台的OpenAPI下发加密指令,设备接收到指令后执行操作,执行结果(成功/失败/异常)原路返回给后端,后端根据回执更新业务状态,若10秒内未收到回执则自动重试2次,仍失败则触发运维告警。
- 异常容错机制 :针对线下网络不稳定的场景,设备本地配置离线缓存,网络断开时可存储多72小时的操作记录,网络恢复后自动同步到后端,避免订单数据丢失;同时每个点位配置4G网络备份,有线网络断开时自动切换到4G,保障基础功能可用。
针对拼豆场景的特殊需求,材料柜内置重量传感器,可精准识别每个格口的拼豆剩余重量,重量低于阈值时自动上报库存预警,提醒运营人员补货。
四、部署与落地注意事项
部署流程
系统提供完整的技术文档、部署文档和资料准备文档,可按照以下流程快速部署:
- 环境准备:生产环境建议配置4核8G以上云服务器2台(分别部署业务服务和物联网平台),MySQL配置主从备份,Redis配置3节点集群保障高可用,域名提前完成备案和HTTPS证书配置。
- 服务部署:后端服务采用Docker打包镜像,通过Docker Compose一键部署,Nginx作为反向代理处理跨域和静态资源请求,管理后台静态资源打包后上传到对象存储或者Nginx服务器。
- 设备对接:线下设备部署完成后,在管理后台录入设备对应的点位信息,测试指令下发、状态上报、订单生成全流程,测试无误后正式上线。
落地优化建议
- 线下点位优先选择商圈、大学城、文创园等年轻人聚集的区域,网络环境优先选择有线网络+4G备份的方案,避免网络波动影响用户体验。
- 系统迭代采用灰度发布方案,先在1-2个测试点验证功能正常后,再全量推送更新,避免影响所有点位的正常运营。
- 数据安全层面,用户敏感信息采用AES加密存储,支付日志至少保存180天,符合等保2.0的相关要求。
本套方案经过多个无人共享场景的落地验证,稳定性可达99.9%,支持根据运营需求快速扩展功能,比如对接拼团活动模块支持多人组队到店DIY、对接AI图像识别模块自动识别拼豆成品并生成电子作品卡等,可满足不同规模的运营需求。
