# 📝 水厂智能货柜方案：技术调整汇总（更新至 2026-04-17）

根据最新的业务战略调整，本项目已从“一柜一码”模式全面切换为**“全城一码 + LBS 动态匹配”**模式。以下是核心技术路径的重大更新：

---

## ⚠️ 核心变更：废弃“参数二维码”体系
- **[移除] 逐柜编号**：不再为每台货柜印制 1001, 1002 等唯一编号的贴纸。
- **[移除] URL 参数解析**：小程序启动时不再通过 options.q 获取 id 参数，二维码仅作为进入小程序的统一入口。

---

## ✅ 目前确定的技术路径（LBS 驱动型）

### 1. “全城一码”扫码与核销机制
- **通用二维码**：全城所有货柜张贴**完全相同**的静态码。
- **自动定位识别**：用户扫码后，小程序立即调取高精度 GPS 坐标。
- **后端碰撞算法**：
    - 后端根据用户当前坐标，在数据库中检索 **30 米范围内**最近的活跃柜机。
    - **单柜场景**：直接进入该柜体详情页。
    - **多柜场景**：若 50 米内并排有多台柜机，小程序弹出列表供用户点击确认（如：“1号柜”、“2号柜”）。

### 2. 售后与异常处理（手动闭环）
- **人工服务路由**：由于硬件无传感器回传，若用户点击“确认开门”但物理门未开，需通过小程序一键拨打“售后电话”。
- **手动补偿**：客服确认后，在后台进行人工补发权益或手动远程推开。

### 3. 库存与运维管理
- **手动补货输入**：补货员完成补货后，必须在运维端手动录入“补货数量”。
- **位置注册流程**：
    - **极简施工**：师傅在任一柜子上贴上通用码。
    - **一键录入**：师傅用运维端扫码并“打卡”，系统自动记录该机器的物理坐标，完成部署。

### 4. 权益池与安全性
- **LBS 锁死开门**：只有当经纬度计算距离 < 50 米时，后端才允许下发开门指令，防止误操作或远程盗取。
- **MQTT 指令**：通过指令下发即扣减权益的模式，若发生异常则通过人工售后冲正。

---

## 🛠️ 后端架构更新
- **LBS 接口**：新增 /api/lbs/find_nearest 接口，支持经纬度反查设备。
- **数据库增强**：设备表新增 longitude 和 latitude 索引字段。
