# 抽奖盲盒系统

欢迎来到抽奖盲盒系统！这是一个基于 **UniApp + ThinkPHP 6.0** 架构开发的**跨平台抽奖盲盒系统**，主要面向娱乐抽奖和商品销售场景。

## 📚 文档目录

### 🎯 [业务流程图](./docs/业务流程图.md)
详细展示了系统的核心业务流程，包括：
- 系统整体业务流程
- 用户注册登录流程
- 抽奖核心流程
- 支付流程
- 商品管理流程
- 订单处理流程
- 集市交易流程
- 数据统计分析流程

### 🏗️ [系统架构图](./docs/系统架构图.md)
全面介绍了系统的技术架构设计，包括：
- 系统整体架构
- 前后端架构设计
- 小程序技术架构
- 抽奖算法架构
- 支付系统架构
- 缓存架构设计
- 消息队列架构
- 安全架构设计
- 监控运维架构

### 🗄️ [数据库设计图](./docs/数据库设计图.md)
完整的数据库设计文档，包含：
- 数据库整体ER图
- 核心业务表关系图
- 用户财务系统表关系图
- 商品管理系统表关系图
- 管理后台系统表关系图
- 数据表索引设计
- 数据库分表策略
- 数据备份与恢复策略

### 🔌 [API接口文档](./docs/API接口文档.md)
详细的API接口说明文档，包括：
- 用户认证接口
- 商品相关接口
- 订单相关接口
- 抽奖相关接口
- 盒柜相关接口
- 财务相关接口
- 福利相关接口
- 系统配置接口
- UniApp调用示例

## 🎮 系统概述

### 项目结构
```
抽奖盲盒系统/
├── honey_box/              # 前端小程序项目（UniApp）
│   ├── pages/              # 页面文件
│   ├── components/         # 组件库
│   ├── common/             # 公共模块
│   └── static/             # 静态资源
├── server/php/             # 后端API项目（ThinkPHP 6.0）
│   ├── app/                # 应用目录
│   ├── config/             # 配置文件
│   └── public/             # 入口文件
└── docs/                   # 项目文档
```

### 核心特性
- 🎲 **多样化抽奖模式**：支持一番赏、无限赏、擂台赏、抽卡机等9种抽奖类型
- 📱 **跨平台支持**：一套代码支持微信小程序、H5、Android、iOS多端运行
- 💰 **灵活支付系统**：支持微信支付、支付宝、余额、虚拟货币等多种支付方式
- 🎁 **智能奖品管理**：支持普通奖品、宝箱奖品、特殊奖品等多种类型
- 🛒 **完整交易流程**：从下单到收货的完整闭环，支持发货、回收、集市交易
- 📊 **数据分析系统**：全方位的用户行为分析和销售数据统计
- 🔒 **安全防护机制**：多层安全防护，完善的权限控制体系
- ⚡ **高性能算法**：优化的抽奖算法，内存占用减少90%+

### 技术栈
**前端技术栈：**
- **框架**：UniApp + Vue.js 2.x
- **构建工具**：HBuilderX
- **UI组件**：uni-ui + 自定义组件
- **状态管理**：全局配置管理 + 本地存储
- **网络请求**：封装RequestManager
- **多端支持**：微信小程序、H5、Android、iOS

**后端技术栈：**
- **框架**：ThinkPHP 6.0
- **数据库**：MySQL 5.7+
- **缓存**：Redis
- **PHP版本**：7.1+ (兼容 PHP 8.0)
- **依赖管理**：Composer
- **文件存储**：腾讯云COS

## 🚀 快速开始

### 环境要求
**前端环境：**
- HBuilderX 3.0+
- Node.js 12+
- 微信开发者工具（小程序开发）

**后端环境：**
- PHP 7.1+
- MySQL 5.7+
- Redis 3.0+
- Composer

### 安装步骤

#### 后端安装
1. **克隆项目**
   ```bash
   git clone [项目地址]
   cd lottery-system/server/php
   ```

2. **安装依赖**
   ```bash
   composer install
   ```

3. **配置环境**
   ```bash
   cp .env.example .env
   # 编辑 .env 文件，配置数据库和其他服务
   ```

4. **导入数据库**
   ```bash
   mysql -u root -p < table.sql
   ```

5. **启动服务**
   ```bash
   php think run
   ```

#### 前端安装
1. **打开项目**
   - 使用HBuilderX打开 `honey_box` 目录

2. **配置环境**
   - 修改 `common/env.js` 中的API地址
   - 配置小程序AppID（manifest.json）

3. **运行项目**
   - 选择运行到微信小程序开发者工具
   - 或运行到浏览器（H5版本）

### 配置说明
**后端配置文件位于 `server/php/config/` 目录下：**
- `database.php` - 数据库配置
- `app.php` - 应用配置
- `cache.php` - 缓存配置
- `route.php` - 路由配置

**前端配置文件位于 `honey_box/common/` 目录下：**
- `env.js` - 环境配置（API地址、图片地址等）
- `config.js` - 全局配置管理
- `request.js` - 网络请求配置

## 📋 业务模块

### 用户系统
- 手机号注册登录
- 微信授权登录
- 用户信息管理
- 等级体系
- 推荐机制

### 商品系统
- 商品分类管理
- 多种抽奖类型
- 奖品配置
- 库存管理
- 概率控制

### 订单系统
- 订单创建
- 支付处理
- 抽奖执行
- 中奖记录

### 财务系统
- 多币种支持
- 资金流水
- 优惠券系统
- 回收机制

### 物流系统
- 发货管理
- 物流跟踪
- 收货确认

### 集市系统
- 商品发布
- 交易撮合
- 安全保障

## 🔧 开发指南

### 代码结构
**前端结构（honey_box/）：**
```
honey_box/
├── pages/                  # 页面文件
│   ├── shouye/            # 首页模块
│   ├── user/              # 用户中心
│   ├── mall/              # 商城模块
│   ├── infinite/          # 福利模块
│   └── hegui/             # 盒柜模块
├── components/            # 组件库
├── common/                # 公共模块
├── static/                # 静态资源
├── uni_modules/           # uni-app插件
└── package/               # 分包模块
```

**后端结构（server/php/）：**
```
server/php/
├── app/                    # 应用目录
│   ├── admin/             # 管理后台
│   ├── api/               # API接口
│   ├── index/             # 前台页面
│   ├── command/           # 命令行任务
│   └── common/            # 公共模块
├── config/                # 配置文件
├── public/                # 入口文件
├── route/                 # 路由定义
├── view/                  # 视图模板
└── vendor/                # 第三方依赖
```

### 开发规范
**前端开发规范：**
- 遵循Vue.js开发规范
- 使用UniApp官方组件和API
- 组件命名采用kebab-case
- 页面路由统一管理
- 网络请求统一封装

**后端开发规范：**
- 遵循 PSR-4 自动加载规范
- 使用 ThinkPHP 6.0 开发规范
- 数据库操作使用 ORM
- 接口返回统一 JSON 格式
- 完善的异常处理机制

## 🛡️ 安全特性

### 数据安全
- 敏感信息加密存储
- SQL注入防护
- XSS攻击防护
- CSRF防护

### 业务安全
- 防刷机制
- 风控系统
- 异常监控
- 操作审计

### 系统安全
- Token认证
- 权限控制
- 访问日志
- 安全配置

## 📈 性能优化

### 数据库优化
- 合理的索引设计
- 读写分离
- 分表策略
- 查询优化

### 缓存策略
- Redis缓存
- 数据缓存
- 页面缓存
- 对象缓存

### 系统优化
- 异步处理
- 队列机制
- 负载均衡
- CDN加速

## 🔍 监控运维

### 日志管理
- 应用日志
- 错误日志
- 访问日志
- 业务日志

### 性能监控
- 系统性能
- 数据库性能
- 接口性能
- 用户体验

### 告警机制
- 实时告警
- 邮件通知
- 短信通知
- 钉钉通知

## 🤝 贡献指南

### 开发流程
1. Fork 项目
2. 创建功能分支
3. 提交代码
4. 创建 Pull Request

### 代码规范
- 遵循 PSR 标准
- 添加必要注释
- 编写单元测试
- 更新文档

### 问题反馈
- 通过 Issue 反馈问题
- 提供详细的问题描述
- 包含复现步骤
- 提供环境信息

## 📄 许可证

本项目采用 [Apache 2.0](./LICENSE) 许可证。

---

**注意**：本文档会持续更新，请关注最新版本。如有疑问或建议，欢迎提交 Issue 或 Pull Request。