# 🚗 洗车店订单管理系统 一个功能完整的洗车店订单管理系统,支持VIP客户管理、预约处理、套餐管理等功能。 ## 📋 目录 - [系统概述](#-系统概述) - [主要功能](#-主要功能) - [技术架构](#-技术架构) - [系统要求](#-系统要求) - [安装指南](#-安装指南) - [项目结构](#-项目结构) - [功能模块](#-功能模块) - [数据库结构](#-数据库结构) - [API接口](#-api接口) - [使用指南](#-使用指南) - [调试工具](#-调试工具) - [常见问题](#-常见问题) - [版本历史](#-版本历史) ## 🎯 系统概述 本系统是一个专为洗车店设计的现代化订单管理平台,提供完整的客户管理、预约处理、VIP服务等功能。系统采用PHP + MySQL架构,界面简洁易用,功能完善稳定。 ### 核心特性 - 🏆 **VIP客户管理** - 完整的VIP客户信息管理和历史预约查询功能 - 📝 **预约管理** - 完整的洗车预约生命周期管理 - 📦 **套餐管理** - 灵活的洗车服务套餐配置 - 💾 **数据持久化** - 可靠的MySQL数据库存储 - 🔍 **搜索功能** - 强大的客户搜索功能 - ️ **调试工具** - 完善的开发调试和监控工具 ## 🚀 主要功能 ### 1. 客户管理 - **客户信息录入** - 姓名、手机号、车型、车牌号等基本信息 - **VIP客户管理** - 专门的VIP客户管理功能 - **客户搜索** - 支持姓名、手机号模糊搜索 - **VIP客户预约记录** - 自动显示VIP客户最近一次预约信息 ### 2. 预约管理 - **预约创建** - 快速创建洗车预约 - **预约状态** - 待确认、已确认、进行中、已完成、已取消等状态管理 - **预约详情** - 完整的预约信息记录 - **VIP客户特殊处理** - 自动关联VIP客户信息和历史记录 ### 3. 套餐管理 - **服务套餐** - 预设洗车服务套餐 - **价格管理** - 灵活的价格设置 - **套餐配置** - 服务项目和时长配置 ### 4. VIP专享功能 - **VIP预约历史查询** - 自动显示VIP客户最近一次预约详情 - **首次到店提示** - 为首次预约的VIP客户提供特别提示 - **客户信息自动填充** - 选择VIP客户后自动填充相关信息 ## 🏗️ 技术架构 ### 前端技术 - **HTML5** - 现代化的页面结构 - **CSS3** - 响应式样式设计 - **JavaScript** - 动态交互和AJAX请求 - **Bootstrap** - UI组件库(可选) ### 后端技术 - **PHP 7.4+** - 服务器端脚本语言 - **MySQL 5.7+** - 关系型数据库 - **PDO** - 数据库抽象层 - **RESTful API** - 标准API设计 ### 核心组件 - **数据库连接** (`db_connect.php`) - 统一的数据库连接管理 - **配置管理** (`config.php`) - 系统配置参数 - **主页面** (`index.php`) - 系统主入口和预约创建页面 - **VIP管理** (`get_vip_customers.php`, `get_vip_last_booking.php`) - VIP客户相关功能 ## 💻 系统要求 ### 服务器环境 - **PHP**: 7.4 或更高版本 - **MySQL**: 5.7 或更高版本 - **Web服务器**: Apache 2.4+ 或 Nginx 1.18+ - **PHP扩展**: PDO, PDO_MySQL, JSON ### 开发环境 - **操作系统**: Windows 10+, macOS 10.14+, Linux Ubuntu 18+ - **推荐工具**: XAMPP, WAMP, LAMP 或 Docker - **浏览器**: Chrome 80+, Firefox 75+, Safari 13+ ## 🔧 安装指南 ### 1. 环境准备 #### 使用XAMPP(推荐) ```bash # 下载并安装XAMPP # 启动Apache和MySQL服务 ``` #### 使用WAMP(Windows用户) ```bash # 下载并安装WAMP # 启动WAMP服务 ``` ### 2. 项目部署 #### 项目文件放置 ```bash # 将项目文件复制到Web服务器根目录 # Windows (XAMPP): C:\xampp\htdocs\carwash_order\ # Linux/macOS: /var/www/html/carwash_order/ ``` #### 数据库配置 ```sql -- 1. 创建数据库 CREATE DATABASE carwash_booking CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -- 2. 导入数据库结构 SOURCE carwash_db.sql; -- 3. 验证表创建 SHOW TABLES; ``` #### 配置文件设置 编辑 `config.php`: ```php ``` ### 3. 权限设置 #### Linux/macOS权限 ```bash # 设置目录权限 chmod -R 755 /var/www/html/carwash_order/ chown -R www-data:www-data /var/www/html/carwash_order/ ``` #### Windows权限 确保IIS或Apache用户有读取项目文件的权限。 ### 4. 访问测试 打开浏览器访问: ``` http://localhost/carwash_order/ ``` ## 📁 项目结构 ``` carwash_order/ ├── README.md # 项目说明文档 ├── carwash_db.sql # 数据库结构和初始数据 ├── config.php # 系统配置文件 ├── db_connect.php # 数据库连接文件 ├── index.php # 主页面入口 ├── style.css # 样式文件 │ ├── API文件/ │ ├── get_vip_customers.php # 获取VIP客户列表API │ ├── get_vip_customer.php # 获取单个VIP客户信息API │ ├── get_vip_last_booking.php # 获取VIP客户最近预约记录API │ └── bookings.php # 预约管理相关API │ ├── 测试工具/ │ ├── test_vip_booking_history.php # VIP预约历史测试 │ ├── test_vip.php # VIP功能测试 │ ├── verify_vip_data.php # VIP数据验证 │ ├── debug_vip.php # VIP调试工具 │ └── vip_search_debug.html # VIP搜索调试页面 │ └── 报告文件/ ├── VIP_Function_Fix_Report.md # VIP功能修复报告 └── VIP_Search_Fix_Report.md # VIP搜索修复报告 ``` ## 🗄️ 数据库结构 ### 主要数据表 #### 1. vip_customers(VIP客户表) ```sql CREATE TABLE vip_customers ( id INT AUTO_INCREMENT PRIMARY KEY, customer_name VARCHAR(100) NOT NULL COMMENT '客户姓名', phone VARCHAR(20) NOT NULL COMMENT '联系电话', car_model VARCHAR(50) COMMENT '车型', car_number VARCHAR(20) COMMENT '车牌号', email VARCHAR(100) COMMENT '邮箱地址', birthday DATE COMMENT '生日', -- 复合唯一索引:确保手机号和车牌号组合唯一 UNIQUE KEY idx_phone_car_number (phone, car_number) notes TEXT COMMENT '备注信息', is_active BOOLEAN DEFAULT TRUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP NULL ); ``` #### 2. bookings(预约表) ```sql CREATE TABLE bookings ( id INT AUTO_INCREMENT PRIMARY KEY, customer_name VARCHAR(100) NOT NULL, phone VARCHAR(20) NOT NULL, car_model VARCHAR(50) NOT NULL, car_number VARCHAR(20) NOT NULL, package_id INT, custom_services TEXT COMMENT '自定义服务内容', start_time DATETIME NOT NULL, end_time DATETIME NOT NULL, duration INT NOT NULL COMMENT '实际服务时长(分钟)', total_price DECIMAL(10,2) NOT NULL, notes TEXT, status ENUM('待确认', '已确认', '进行中', '已完成', '已取消') DEFAULT '待确认', member_type ENUM('普通客户', 'VIP会员') DEFAULT '普通客户' COMMENT '会员类型', source ENUM('抖音', '微信', '快手', '朋友介绍', '其他') DEFAULT '其他' COMMENT '客户来源', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP NULL, FOREIGN KEY (package_id) REFERENCES packages(id) ON DELETE SET NULL ); ``` #### 3. packages(套餐表) ```sql CREATE TABLE packages ( id INT AUTO_INCREMENT PRIMARY KEY, package_name VARCHAR(100) NOT NULL, description TEXT, base_duration INT NOT NULL COMMENT '基础服务时长(分钟)', price DECIMAL(10,2) NOT NULL, services TEXT NOT NULL COMMENT '包含的服务项目(用逗号分隔)', is_active BOOLEAN DEFAULT TRUE, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP NULL ); ``` ## 🔌 API接口 ### VIP客户相关接口 #### 1. 获取VIP客户列表 ```http GET /get_vip_customers.php ``` **参数**: 无 **返回**: JSON格式的VIP客户列表 **响应示例**: ```json [ { "id": 1, "customer_name": "张总", "phone": "13900139001", "car_model": "奔驰S500", "car_number": "京V88888", "email": "zhang@example.com", "birthday": "1980-05-15", "is_active": 1 } ] ``` #### 2. 获取VIP客户最近预约记录 ```http GET /get_vip_last_booking.php?vip_id=1 ``` **参数**: - `vip_id`: VIP客户ID **返回**: JSON格式的最近预约信息或首次到店标识 **响应示例** (有预约记录): ```json { "has_booking": true, "appointment_date": "2024-12-21", "appointment_time": "14:00", "package_name": "VIP套餐", "duration": 180 } ``` **响应示例** (首次到店): ```json { "has_booking": false } ``` ## � 使用指南 ### 基础操作流程 #### 1. VIP客户预约 ``` 1. 打开系统主页 (index.php) 2. 选择客户类型为"VIP客户" 3. 在VIP搜索框中输入关键词搜索客户 4. 选择目标VIP客户 5. 系统自动显示客户信息和最近一次预约记录(如有) 6. 选择服务套餐和预约时间 7. 提交预约 ``` #### 2. 普通客户预约 ``` 1. 打开系统主页 (index.php) 2. 选择客户类型为"普通客户" 3. 填写客户基本信息 4. 选择服务套餐和预约时间 5. 提交预约 ``` ### VIP客户特殊功能 #### VIP客户最近预约显示 当选择VIP客户后,系统会自动查询并显示该客户的最近一次预约信息,包括: - 预约日期 - 预约时间 - 选择的套餐 - 服务时长 如果是首次预约,则显示"该VIP首次到店"的提示信息。 ## 🛠️ 调试工具 ### 1. VIP预约历史测试 - **文件**: `test_vip_booking_history.php` - **功能**: 测试VIP客户预约历史查询功能 - **使用**: 浏览器访问或命令行执行 ### 2. VIP功能测试 - **文件**: `test_vip.php` - **功能**: 测试VIP客户管理相关功能 - **使用**: 浏览器访问 ### 3. 数据库连接测试 - **文件**: `test_db_connection.php` - **功能**: 测试数据库连接是否正常 - **使用**: 命令行执行 ## ❓ 常见问题 ### 安装问题 #### Q: PHP版本不兼容怎么办? A: 确保使用PHP 7.4或更高版本,检查php.ini配置是否启用PDO扩展。 #### Q: 数据库连接失败? A: 检查config.php中的数据库配置,确保MySQL服务正在运行,用户权限正确。 ### 功能问题 #### Q: VIP客户搜索不到? A: 1. 检查数据库中是否有VIP客户数据 2. 查看浏览器控制台是否有JavaScript错误 3. 使用调试工具验证数据加载 #### Q: VIP客户预约记录不显示? A: 1. 确认该VIP客户已有预约记录 2. 检查get_vip_last_booking.php是否正常工作 3. 查看数据库中bookings表与vip_customers表的phone字段是否匹配 #### Q: 页面显示错误"SQLSTATE[42S22]: Column not found"? A: 确保数据库结构与代码中的表结构一致,特别是bookings表使用start_time字段而不是appointment_date字段。 ## 📝 版本历史 ### v3.0.0 (最新版) - ✨ **新增**: VIP客户最近预约记录显示功能 - 🐛 **修复**: 数据库查询错误,优化表结构匹配 - 🔧 **改进**: VIP客户与预约记录的关联逻辑 - � **增强**: 首次到店提示功能 ### v2.1.0 (2024-01-15) - ✨ **新增**: VIP客户搜索功能优化 - 🐛 **修复**: VIP客户数据加载时序问题 - 🔧 **改进**: 异步处理机制优化 ### v2.0.0 (2024-01-10) - ✨ **新增**: VIP客户管理系统 - ✨ **新增**: 订单状态管理 - ✨ **新增**: 套餐配置功能 ### v1.0.0 (2024-01-01) - 🎉 **初始版本**: 基础订单管理功能 - ✨ **新增**: 客户信息管理 - ✨ **新增**: 订单创建和处理 ## 📄 许可证 本项目采用 [MIT License](LICENSE) 开源协议。 ## 🙏 致谢 感谢所有为这个项目贡献代码、反馈问题和提出建议的开发者们! --- **洗车店订单管理系统** - 让洗车店管理更简单、更高效! 🚗✨