有自己Webshoting - 我希望是语言:PHP , 数据库:MySQL(可用 phpMyAdmin 管理) # 🍷 啤酒 / 烈酒储存管理系统 - 完整系统设计文档 ## 🎯 项目目标 为 KTV / 酒吧内部使用的存酒与顾客管理系统。 要求: - 前端:HTML + CSS (+ JS) - 后端:PHP - 数据库:MySQL - 使用者:5+ 员工,顾客可查存酒信息 - 可在手机浏览器使用 - 数据自动备份到云端 - 集成 Telegram Bot 自动消息通知 --- ## 📂 数据库设计 (MySQL) ### 1. 用户表 (users) | 字段 | 类型 | 描述 | |------------|--------------|-----------------------------------| | id | INT PK AI | 用户ID | | username | VARCHAR(50) | 登录用户名 | | password | VARCHAR(255) | 登录密码 (hash 存储) | | role | ENUM | `admin` / `staff` | | created_at | DATETIME | 创建时间 | --- ### 2. 顾客表 (customers) | 字段 | 类型 | 描述 | |--------------|---------------|-------------------| | id | INT PK AI | 顾客ID | | name | VARCHAR(100) | 顾客姓名 | | phone | VARCHAR(20) | 电话 | | membership_no| VARCHAR(50) | 会员号 (可选) | | created_at | DATETIME | 注册时间 | --- ### 3. 存酒表 (storages) | 字段 | 类型 | 描述 | |------------|---------------|-------------------------------------------| | id | INT PK AI | 存酒记录ID | | customer_id| INT FK | 对应顾客ID | | brand | VARCHAR(100) | 酒的品牌 | | quantity | INT | 存酒数量 | | store_date | DATE | 存酒日期 | | expire_date| DATE | 到期日期 | | status | ENUM | `stored` / `taken` / `expired` | | is_spirit | TINYINT | 是否烈酒 (1=烈酒,0=啤酒),烈酒需要打印标签 | --- ### 4. 操作记录表 (transactions) | 字段 | 类型 | 描述 | |------------|--------------|-------------------------------| | id | INT PK AI | 操作记录ID | | storage_id | INT FK | 对应存酒记录ID | | staff_id | INT FK | 执行操作的员工 | | action | ENUM | `store` / `take` / `update` | | quantity | INT | 操作数量 | | action_date| DATETIME | 操作时间 | --- ### 5. 顾客查询访问表 (customer_access) | 字段 | 类型 | 描述 | |------------|--------------|------------------------------| | id | INT PK AI | ID | | customer_id| INT FK | 对应顾客ID | | token | VARCHAR(255) | 随机 token (唯一链接用) | | expire_link| DATETIME | 链接过期时间 (可选) | --- ### 6. 系统配置表 (system_config) | 字段 | 类型 | 描述 | |------------|--------------|------------------------------------| | id | INT PK AI | 配置ID | | key | VARCHAR(50) | 配置项 (如 `telegram_token`) | | value | TEXT | 配置值 (如 bot token, chat_id 等) | --- ## 🔑 功能模块 ### 1. 登录 / 权限 - 员工通过 `users` 表登录 - 权限分级: - **Admin**:管理所有顾客、员工、导出报表 - **Staff**:录入/修改顾客存酒、提酒,查看自己的操作记录 --- ### 2. 顾客管理 - 添加 / 编辑顾客资料 - 搜索顾客(姓名 / 电话 / 会员号) --- ### 3. 存酒管理 - 新增存酒:选择顾客,输入酒名、数量、保存日期、到期日 - 提酒:减少数量,如果取完 → 状态变 `taken` - 系统自动生成操作记录(写入 `transactions` 表) - 烈酒 (`is_spirit = 1`) → 提供「打印标签」功能 --- ### 4. 标签打印 (仅烈酒) - 烈酒存入时,系统可生成一个 **标签**: - 顾客姓名 (`customers.name`) - 酒的品牌 (`storages.brand`) - 存酒日期 & 到期日期 - QR Code (存酒 ID + token) - 标签可直接通过浏览器打印,尺寸支持 A7 / 自定义 --- ### 5. 顾客查询 (只读) - 顾客扫描二维码 / 点击唯一链接 - 显示自己所有存酒:酒名、数量、到期日、状态 - 无法修改,仅查看 --- ### 6. Telegram Bot 自动通知 - 每次存酒 / 提酒 → 自动调用 Telegram Bot API 发消息到群 - 消息格式: 📢 [酒存取通知] 顾客:张三 酒品:Chivas 18 动作:存酒 数量:2 时间:2025-09-28 23:15 操作员:Staff A - 使用 `system_config` 表存储 `telegram_token` 和 `telegram_chatid` - PHP 通过 `https://api.telegram.org/bot/sendMessage` 调用 --- ### 7. 提醒功能 - 系统每天检查 `expire_date` - 自动生成「快到期清单」供员工查看 - (可扩展)自动发 Telegram 通知顾客即将到期 --- ### 8. 报表 / 导出 - 管理员可导出 Excel / CSV - 报表内容:存酒总览、到期统计、员工操作记录 --- ## 📱 前端要求 - 响应式设计(手机、平板、电脑兼容) - 使用 Bootstrap / Tailwind CSS - 提供「扫码操作」功能: - 每个存酒记录生成 QR code → 扫码快速调出 --- ## 🔒 安全性 - 密码用 bcrypt / password_hash 存储 - 所有接口使用 Session 登录态 - 顾客查询链接使用随机 token,避免暴露数据 --- ## ☁️ 云端备份 - MySQL 定时自动导出 `.sql` 文件 - 同步至 Google Drive / Dropbox / AWS S3 - 备份周期:每日增量 + 每周全量 --- ## 🚀 开发优先级 ### 阶段 1 - MVP - 员工登录 - 顾客资料管理 - 存酒 / 提酒记录 - 基础报表导出 - Telegram Bot 消息推送 ### 阶段 2 - 完整版 - 顾客扫码查询 - 到期提醒系统 - 烈酒标签打印 (带 QR Code) - 员工操作日志 - 数据自动备份 ---