# 道台福
**Repository Path**: pas66/DaoTaiFu
## Basic Information
- **Project Name**: 道台福
- **Description**: 野菜包子项目预订系统
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-03-31
- **Last Updated**: 2026-04-01
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 野菜包子预定商城系统
[](https://github.com/wild-vegetable-preorder)
[](LICENSE)
专注于野菜包子及野菜制品的B2C电商平台,采用统一配送模式,为个人消费者和企业客户提供便捷的在线预订服务。
## 产品特性
### 核心功能
- **商品管理**: 野菜包子及野菜制品展示、搜索、分类、库存管理
- **会员系统**: 注册登录、邮箱验证、会员等级、积分奖励
- **购物车**: 商品添加、数量修改、结算
- **订单管理**: 订单创建、查询、取消、确认收货
- **定时配送**: 早餐/午餐/晚餐三个配送批次
- **企业定制**: 企业账户、批量订购、发票服务
- **PWA应用**: 可安装到桌面、离线访问、后台消息推送
### 技术亮点
- PWA 支持:可安装到桌面、离线访问、后台消息推送
- Vue3 Composition API:使用最新的 Vue 3 组合式 API
- TypeScript:全类型支持,提升代码质量
- 前后端分离:前台 Vue3 + 后台 FastAdmin
- 定时配送:支持早餐/午餐/晚餐三个配送时段
## 技术栈
| 层级 | 技术选型 | 说明 |
|------|----------|------|
| 前台框架 | Vue 3 + TypeScript | 组合式API + Pinia状态管理 |
| PWA | VitePWA | Service Worker + 离线支持 |
| 后台框架 | FastAdmin | 基于ThinkPHP6 |
| API风格 | RESTful | JSON格式交互 |
| 数据库 | MySQL 8.0 | 主从复制架构 |
| 缓存 | Redis 7.0 | Session + 热数据缓存 |
| 部署 | Docker |容器化部署 |
## 项目结构
```
wild-vegetable-preorder/
├── backend/ # FastAdmin 后台项目
│ ├── application/ # 应用目录
│ │ ├── admin/ # 后台管理模块
│ │ ├── api/ # API 模块
│ │ └── common/ # 公共模块
│ ├── database/ # 数据库脚本
│ └── public/ # 入口文件和静态资源
├── frontend/ # Vue3 前台项目
│ ├── src/ # 源代码目录
│ │ ├── api/ # API 接口封装
│ │ ├── components/ # 公共组件
│ │ ├── pages/ # 页面组件
│ │ ├── router/ # 路由配置
│ │ ├── stores/ # Pinia 状态管理
│ │ └── types/ # TypeScript 类型定义
│ └── public/ # 公共静态资源
├── scripts/ # 部署脚本
├── docker-compose.yml # Docker 配置
└── README.md
```
## 快速开始
### 环境要求
- Node.js 18+
- PHP 8.1+
- MySQL 8.0+
- Redis 7.0+
- Docker (可选)
### 使用 Docker 启动 (推荐)
```bash
# 克隆项目
git clone
cd wild-vegetable-preorder
# 启动所有服务
chmod +x scripts/start.sh
./scripts/start.sh
```
服务地址:
- 前端: http://localhost:3000
- 后端API: http://localhost:8080
- 管理后台: http://localhost:8080/admin
### 手动启动
#### 后端启动
```bash
cd backend
# 安装依赖
composer install
# 复制配置
cp .env.example .env
# 配置数据库连接
# 编辑 .env 文件设置数据库参数
# 导入数据库
mysql -u root -p < database/init.sql
# 启动服务
php think run -H 0.0.0.0 -p 8080
```
#### 前端启动
```bash
cd frontend
# 安装依赖
npm install
# 启动开发服务器
npm run dev
```
## 功能模块详解
### 会员等级制度
| 等级 | 消费门槛 | 订单数门槛 | 积分倍率 | 专属折扣 |
|------|----------|------------|----------|----------|
| 普通 | <2000元 | <5单 | 1.0倍 | - |
| 银卡 | ≥2000元 | ≥15单 | 1.2倍 | 98折 |
| 金卡 | ≥5000元 | ≥30单 | 1.5倍 | 95折 |
| 钻石 | ≥10000元 | ≥50单 | 2.0倍 | 92折 |
### 积分规则
- 消费1元返1积分(按会员等级倍率)
- 100积分可兑换1元价值的商品
- 积分不可提现
### 配送时间
| 批次 | 时段 | 截单时间 |
|------|------|----------|
| 早餐 | 06:00-08:00 | 前一日20:00 |
| 午餐 | 11:00-13:00 | 当日08:00 |
| 晚餐 | 17:00-19:00 | 当日14:00 |
## API 接口
### 认证接口
| 方法 | 路径 | 说明 |
|------|------|------|
| POST | /api/auth/register | 用户注册 |
| POST | /api/auth/login | 用户登录 |
| POST | /api/auth/logout | 退出登录 |
| POST | /api/auth/sendVerifyEmail | 发送邮箱验证 |
| POST | /api/auth/verifyEmail | 验证邮箱 |
| POST | /api/auth/sendResetCode | 发送密码重置验证码 |
### 用户接口
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | /api/user/info | 获取用户信息 |
| PUT | /api/user/info | 更新用户信息 |
| GET | /api/user/addresses | 获取地址列表 |
| POST | /api/user/address | 添加地址 |
| PUT | /api/user/address/:id | 更新地址 |
| DELETE | /api/user/address/:id | 删除地址 |
### 商品接口
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | /api/product/list | 商品列表 |
| GET | /api/product/detail/:id | 商品详情 |
| GET | /api/product/categories | 商品分类 |
### 订单接口
| 方法 | 路径 | 说明 |
|------|------|------|
| POST | /api/order/create | 创建订单 |
| GET | /api/order/list | 订单列表 |
| GET | /api/order/detail/:order_no | 订单详情 |
| POST | /api/order/cancel/:order_no | 取消订单 |
| POST | /api/order/confirm/:order_no | 确认收货 |
### 积分接口
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | /api/integral/balance | 积分余额 |
| GET | /api/integral/logs | 积分日志 |
| POST | /api/integral/exchange | 积分兑换 |
### 配送接口
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | /api/delivery/batches | 配送批次 |
| GET | /api/delivery/track/:order_no | 配送跟踪 |
## 数据库表结构
| 表名 | 说明 |
|------|------|
| user | 用户表 |
| user_address | 用户地址表 |
| category | 商品分类表 |
| product | 商品表 |
| cart | 购物车表 |
| order | 订单主表 |
| order_item | 订单明细表 |
| integral_log | 积分日志表 |
| delivery | 配送表 |
| enterprise | 企业表 |
| login_log | 登录日志表 |
| price_change_log | 价格变更日志表 |
## 安全特性
- JWT Token认证,有效期7天
- 密码加盐哈希存储(bcrypt)
- 登录失败5次锁定30分钟
- 邮箱验证机制
- SQL注入防护
- XSS攻击防护
## 部署架构
```mermaid
graph TB
subgraph 前台客户端
PWA[Vue3 PWA应用]
H5[移动端H5]
WEB[PC Web端]
end
subgraph 网关层
NGINX[Nginx 反向代理]
end
subgraph 后台服务
ADMIN[FastAdmin 后台]
API[RESTful API]
end
subgraph 数据层
MYSQL[(MySQL 数据库)]
REDIS[(Redis 缓存)]
end
PWA --> NGINX
H5 --> NGINX
WEB --> NGINX
NGINX --> ADMIN
NGINX --> API
API --> MYSQL
API --> REDIS
```
## 开发指南
### 前端开发
```bash
# 安装依赖
npm install
# 开发模式
npm run dev
# 类型检查
npm run type-check
# 构建生产版本
npm run build
```
### 后端开发
请参考 FastAdmin 官方文档进行后台项目初始化:
- FastAdmin 文档: https://doc.fastadmin.net
- ThinkPHP6 文档: https://www.kancloud.cn/topthink/thinkphp6
## 测试账号
| 角色 | 账号 | 密码 |
|------|------|------|
| 管理员 | admin | admin123 |
| 测试用户 | test | test123 |
## 许可证
本项目基于 MIT 许可证开源,详情请参阅 [LICENSE](LICENSE) 文件。
## 贡献指南
欢迎提交 Issue 和 Pull Request!
1. Fork 本仓库
2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 创建 Pull Request
## 联系方式
- 项目主页: https://github.com/wild-vegetable-preorder
- 问题反馈: https://github.com/wild-vegetable-preorder/issues
---
Made with ❤️ for wild vegetable lovers