构建排除文件
This commit is contained in:
parent
027b32efe2
commit
af5ae7f4f1
280
.gitignore
vendored
Normal file
280
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,280 @@
|
||||||
|
# 操作系统生成的文件
|
||||||
|
.DS_Store
|
||||||
|
.DS_Store?
|
||||||
|
._*
|
||||||
|
.Spotlight-V100
|
||||||
|
.Trashes
|
||||||
|
ehthumbs.db
|
||||||
|
Thumbs.db
|
||||||
|
|
||||||
|
# IDE和编辑器文件
|
||||||
|
.vscode/
|
||||||
|
.idea/
|
||||||
|
*.swp
|
||||||
|
*.swo
|
||||||
|
*~
|
||||||
|
|
||||||
|
# 日志文件
|
||||||
|
*.log
|
||||||
|
logs/
|
||||||
|
npm-debug.log*
|
||||||
|
yarn-debug.log*
|
||||||
|
yarn-error.log*
|
||||||
|
|
||||||
|
# 依赖目录
|
||||||
|
node_modules/
|
||||||
|
vendor/
|
||||||
|
|
||||||
|
# 构建输出目录
|
||||||
|
dist/
|
||||||
|
build/
|
||||||
|
out/
|
||||||
|
|
||||||
|
# 环境配置文件
|
||||||
|
# .env.local
|
||||||
|
# .env.development.local
|
||||||
|
# .env.test.local
|
||||||
|
# .env.production.local
|
||||||
|
|
||||||
|
# PHP相关
|
||||||
|
# server/php/.env
|
||||||
|
server/php/runtime/
|
||||||
|
server/php/vendor/
|
||||||
|
server/php/composer.lock
|
||||||
|
|
||||||
|
# 缓存文件
|
||||||
|
*.cache
|
||||||
|
.cache/
|
||||||
|
|
||||||
|
# 临时文件
|
||||||
|
tmp/
|
||||||
|
temp/
|
||||||
|
*.tmp
|
||||||
|
|
||||||
|
# 备份文件
|
||||||
|
*.bak
|
||||||
|
*.backup
|
||||||
|
*.old
|
||||||
|
|
||||||
|
# 压缩文件
|
||||||
|
*.zip
|
||||||
|
*.rar
|
||||||
|
*.7z
|
||||||
|
*.tar.gz
|
||||||
|
|
||||||
|
# 数据库文件
|
||||||
|
*.sqlite
|
||||||
|
*.db
|
||||||
|
|
||||||
|
# 上传文件目录
|
||||||
|
uploads/
|
||||||
|
upload/
|
||||||
|
|
||||||
|
# 小程序相关
|
||||||
|
honey_box/unpackage/
|
||||||
|
honey_box/node_modules/
|
||||||
|
|
||||||
|
# HBuilderX相关
|
||||||
|
.hbuilderx/
|
||||||
|
|
||||||
|
# 微信开发者工具相关
|
||||||
|
project.config.json
|
||||||
|
project.private.config.json
|
||||||
|
|
||||||
|
# 图片和媒体文件(可选,根据需要调整)
|
||||||
|
# *.jpg
|
||||||
|
# *.jpeg
|
||||||
|
# *.png
|
||||||
|
# *.gif
|
||||||
|
# *.mp4
|
||||||
|
# *.mp3
|
||||||
|
|
||||||
|
# 文档生成的临时文件
|
||||||
|
*.pdf
|
||||||
|
*.docx
|
||||||
|
|
||||||
|
# 测试覆盖率报告
|
||||||
|
coverage/
|
||||||
|
.nyc_output/
|
||||||
|
|
||||||
|
# 包管理器锁定文件(可选)
|
||||||
|
# package-lock.json
|
||||||
|
# yarn.lock
|
||||||
|
|
||||||
|
# 本地配置文件
|
||||||
|
config.local.js
|
||||||
|
config.local.php
|
||||||
|
|
||||||
|
# 错误报告
|
||||||
|
error_log
|
||||||
|
php_errors.log
|
||||||
|
|
||||||
|
# 系统文件
|
||||||
|
*.pid
|
||||||
|
*.seed
|
||||||
|
*.pid.lock
|
||||||
|
|
||||||
|
# 运行时文件
|
||||||
|
pids/
|
||||||
|
*.pid
|
||||||
|
*.seed
|
||||||
|
*.pid.lock
|
||||||
|
|
||||||
|
# 覆盖率目录
|
||||||
|
lib-cov/
|
||||||
|
|
||||||
|
# nyc测试覆盖率
|
||||||
|
.nyc_output
|
||||||
|
|
||||||
|
# Grunt中间存储
|
||||||
|
.grunt
|
||||||
|
|
||||||
|
# Bower依赖目录
|
||||||
|
bower_components
|
||||||
|
|
||||||
|
# node-waf配置
|
||||||
|
.lock-wscript
|
||||||
|
|
||||||
|
# 编译的二进制插件
|
||||||
|
build/Release
|
||||||
|
|
||||||
|
# 依赖目录
|
||||||
|
jspm_packages/
|
||||||
|
|
||||||
|
# TypeScript v1声明文件
|
||||||
|
typings/
|
||||||
|
|
||||||
|
# 可选的npm缓存目录
|
||||||
|
.npm
|
||||||
|
|
||||||
|
# 可选的eslint缓存
|
||||||
|
.eslintcache
|
||||||
|
|
||||||
|
# Microbundle缓存
|
||||||
|
.rpt2_cache/
|
||||||
|
.rts2_cache_cjs/
|
||||||
|
.rts2_cache_es/
|
||||||
|
.rts2_cache_umd/
|
||||||
|
|
||||||
|
# 可选的REPL历史
|
||||||
|
.node_repl_history
|
||||||
|
|
||||||
|
# yarn完整性文件
|
||||||
|
.yarn-integrity
|
||||||
|
|
||||||
|
# dotenv环境变量文件
|
||||||
|
.env.test
|
||||||
|
|
||||||
|
# parcel-bundler缓存
|
||||||
|
.parcel-cache
|
||||||
|
|
||||||
|
# Next.js构建输出
|
||||||
|
.next
|
||||||
|
|
||||||
|
# Nuxt.js构建/生成输出
|
||||||
|
.nuxt
|
||||||
|
dist
|
||||||
|
|
||||||
|
# Gatsby文件
|
||||||
|
.cache/
|
||||||
|
public
|
||||||
|
|
||||||
|
# Storybook构建输出
|
||||||
|
.out
|
||||||
|
.storybook-out
|
||||||
|
|
||||||
|
# Temporary folders
|
||||||
|
tmp/
|
||||||
|
temp/
|
||||||
|
|
||||||
|
# Runtime data
|
||||||
|
pids
|
||||||
|
*.pid
|
||||||
|
*.seed
|
||||||
|
*.pid.lock
|
||||||
|
|
||||||
|
# Directory for instrumented libs generated by jscoverage/JSCover
|
||||||
|
lib-cov
|
||||||
|
|
||||||
|
# Coverage directory used by tools like istanbul
|
||||||
|
coverage
|
||||||
|
*.lcov
|
||||||
|
|
||||||
|
# Dependency directories
|
||||||
|
node_modules/
|
||||||
|
jspm_packages/
|
||||||
|
|
||||||
|
# Snowpack dependency directory (https://snowpack.dev/)
|
||||||
|
web_modules/
|
||||||
|
|
||||||
|
# TypeScript cache
|
||||||
|
*.tsbuildinfo
|
||||||
|
|
||||||
|
# Optional npm cache directory
|
||||||
|
.npm
|
||||||
|
|
||||||
|
# Optional eslint cache
|
||||||
|
.eslintcache
|
||||||
|
|
||||||
|
# Microbundle cache
|
||||||
|
.rpt2_cache/
|
||||||
|
.rts2_cache_cjs/
|
||||||
|
.rts2_cache_es/
|
||||||
|
.rts2_cache_umd/
|
||||||
|
|
||||||
|
# Optional REPL history
|
||||||
|
.node_repl_history
|
||||||
|
|
||||||
|
# Output of 'npm pack'
|
||||||
|
*.tgz
|
||||||
|
|
||||||
|
# Yarn Integrity file
|
||||||
|
.yarn-integrity
|
||||||
|
|
||||||
|
# dotenv environment variables file
|
||||||
|
# .env
|
||||||
|
.env.test
|
||||||
|
.env.production
|
||||||
|
|
||||||
|
# parcel-bundler cache (https://parceljs.org/)
|
||||||
|
.cache
|
||||||
|
.parcel-cache
|
||||||
|
|
||||||
|
# Next.js build output
|
||||||
|
.next
|
||||||
|
out
|
||||||
|
|
||||||
|
# Nuxt.js build / generate output
|
||||||
|
.nuxt
|
||||||
|
dist
|
||||||
|
|
||||||
|
# Gatsby files
|
||||||
|
.cache/
|
||||||
|
# Comment in the public line in if your project uses Gatsby and not Next.js
|
||||||
|
# https://nextjs.org/blog/next-9-1#public-directory-support
|
||||||
|
# public
|
||||||
|
|
||||||
|
# vuepress build output
|
||||||
|
.vuepress/dist
|
||||||
|
|
||||||
|
# Serverless directories
|
||||||
|
.serverless/
|
||||||
|
|
||||||
|
# FuseBox cache
|
||||||
|
.fusebox/
|
||||||
|
|
||||||
|
# DynamoDB Local files
|
||||||
|
.dynamodb/
|
||||||
|
|
||||||
|
# TernJS port file
|
||||||
|
.tern-port
|
||||||
|
|
||||||
|
# Stores VSCode versions used for testing VSCode extensions
|
||||||
|
.vscode-test
|
||||||
|
|
||||||
|
# yarn v2
|
||||||
|
.yarn/cache
|
||||||
|
.yarn/unplugged
|
||||||
|
.yarn/build-state.yml
|
||||||
|
.yarn/install-state.gz
|
||||||
|
.pnp.*
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
# 抽奖盲盒系统文档
|
# 抽奖盲盒系统
|
||||||
|
|
||||||
欢迎来到抽奖盲盒系统的技术文档中心!本文档集合包含了系统的完整技术资料,帮助开发者、运维人员和产品经理全面了解系统架构和业务流程。
|
欢迎来到抽奖盲盒系统!这是一个基于 **UniApp + ThinkPHP 6.0** 架构开发的**跨平台抽奖盲盒系统**,主要面向娱乐抽奖和商品销售场景。
|
||||||
|
|
||||||
## 📚 文档目录
|
## 📚 文档目录
|
||||||
|
|
||||||
### 🎯 [业务流程图](./业务流程图.md)
|
### 🎯 [业务流程图](./docs/业务流程图.md)
|
||||||
详细展示了系统的核心业务流程,包括:
|
详细展示了系统的核心业务流程,包括:
|
||||||
- 系统整体业务流程
|
- 系统整体业务流程
|
||||||
- 用户注册登录流程
|
- 用户注册登录流程
|
||||||
|
|
@ -15,10 +15,11 @@
|
||||||
- 集市交易流程
|
- 集市交易流程
|
||||||
- 数据统计分析流程
|
- 数据统计分析流程
|
||||||
|
|
||||||
### 🏗️ [系统架构图](./系统架构图.md)
|
### 🏗️ [系统架构图](./docs/系统架构图.md)
|
||||||
全面介绍了系统的技术架构设计,包括:
|
全面介绍了系统的技术架构设计,包括:
|
||||||
- 系统整体架构
|
- 系统整体架构
|
||||||
- 应用模块架构
|
- 前后端架构设计
|
||||||
|
- 小程序技术架构
|
||||||
- 抽奖算法架构
|
- 抽奖算法架构
|
||||||
- 支付系统架构
|
- 支付系统架构
|
||||||
- 缓存架构设计
|
- 缓存架构设计
|
||||||
|
|
@ -26,7 +27,7 @@
|
||||||
- 安全架构设计
|
- 安全架构设计
|
||||||
- 监控运维架构
|
- 监控运维架构
|
||||||
|
|
||||||
### 🗄️ [数据库设计图](./数据库设计图.md)
|
### 🗄️ [数据库设计图](./docs/数据库设计图.md)
|
||||||
完整的数据库设计文档,包含:
|
完整的数据库设计文档,包含:
|
||||||
- 数据库整体ER图
|
- 数据库整体ER图
|
||||||
- 核心业务表关系图
|
- 核心业务表关系图
|
||||||
|
|
@ -37,52 +38,83 @@
|
||||||
- 数据库分表策略
|
- 数据库分表策略
|
||||||
- 数据备份与恢复策略
|
- 数据备份与恢复策略
|
||||||
|
|
||||||
### 🔌 [API接口文档](./API接口文档.md)
|
### 🔌 [API接口文档](./docs/API接口文档.md)
|
||||||
详细的API接口说明文档,包括:
|
详细的API接口说明文档,包括:
|
||||||
- 用户认证接口
|
- 用户认证接口
|
||||||
- 商品相关接口
|
- 商品相关接口
|
||||||
- 订单相关接口
|
- 订单相关接口
|
||||||
- 抽奖相关接口
|
- 抽奖相关接口
|
||||||
- 集市相关接口
|
- 盒柜相关接口
|
||||||
- 财务相关接口
|
- 财务相关接口
|
||||||
- 发货相关接口
|
- 福利相关接口
|
||||||
- 系统配置接口
|
- 系统配置接口
|
||||||
- 错误码说明
|
- UniApp调用示例
|
||||||
- 接口调用示例
|
|
||||||
|
|
||||||
## 🎮 系统概述
|
## 🎮 系统概述
|
||||||
|
|
||||||
### 项目简介
|
### 项目结构
|
||||||
这是一个基于 **ThinkPHP 6.0** 框架开发的**抽奖盲盒系统**,主要面向娱乐抽奖和商品销售场景。系统采用前后端分离架构,支持多种抽奖模式和支付方式。
|
```
|
||||||
|
抽奖盲盒系统/
|
||||||
|
├── honey_box/ # 前端小程序项目(UniApp)
|
||||||
|
│ ├── pages/ # 页面文件
|
||||||
|
│ ├── components/ # 组件库
|
||||||
|
│ ├── common/ # 公共模块
|
||||||
|
│ └── static/ # 静态资源
|
||||||
|
├── server/php/ # 后端API项目(ThinkPHP 6.0)
|
||||||
|
│ ├── app/ # 应用目录
|
||||||
|
│ ├── config/ # 配置文件
|
||||||
|
│ └── public/ # 入口文件
|
||||||
|
└── docs/ # 项目文档
|
||||||
|
```
|
||||||
|
|
||||||
### 核心特性
|
### 核心特性
|
||||||
- 🎲 **多样化抽奖模式**:支持一番赏、无限赏、擂台赏、抽卡机等9种抽奖类型
|
- 🎲 **多样化抽奖模式**:支持一番赏、无限赏、擂台赏、抽卡机等9种抽奖类型
|
||||||
|
- 📱 **跨平台支持**:一套代码支持微信小程序、H5、Android、iOS多端运行
|
||||||
- 💰 **灵活支付系统**:支持微信支付、支付宝、余额、虚拟货币等多种支付方式
|
- 💰 **灵活支付系统**:支持微信支付、支付宝、余额、虚拟货币等多种支付方式
|
||||||
- 🎁 **智能奖品管理**:支持普通奖品、宝箱奖品、特殊奖品等多种类型
|
- 🎁 **智能奖品管理**:支持普通奖品、宝箱奖品、特殊奖品等多种类型
|
||||||
- 🛒 **完整交易流程**:从下单到收货的完整闭环,支持发货、回收、集市交易
|
- 🛒 **完整交易流程**:从下单到收货的完整闭环,支持发货、回收、集市交易
|
||||||
- 📊 **数据分析系统**:全方位的用户行为分析和销售数据统计
|
- 📊 **数据分析系统**:全方位的用户行为分析和销售数据统计
|
||||||
- 🔒 **安全防护机制**:多层安全防护,完善的权限控制体系
|
- 🔒 **安全防护机制**:多层安全防护,完善的权限控制体系
|
||||||
|
- ⚡ **高性能算法**:优化的抽奖算法,内存占用减少90%+
|
||||||
|
|
||||||
### 技术栈
|
### 技术栈
|
||||||
- **后端框架**:ThinkPHP 6.0
|
**前端技术栈:**
|
||||||
|
- **框架**:UniApp + Vue.js 2.x
|
||||||
|
- **构建工具**:HBuilderX
|
||||||
|
- **UI组件**:uni-ui + 自定义组件
|
||||||
|
- **状态管理**:全局配置管理 + 本地存储
|
||||||
|
- **网络请求**:封装RequestManager
|
||||||
|
- **多端支持**:微信小程序、H5、Android、iOS
|
||||||
|
|
||||||
|
**后端技术栈:**
|
||||||
|
- **框架**:ThinkPHP 6.0
|
||||||
- **数据库**:MySQL 5.7+
|
- **数据库**:MySQL 5.7+
|
||||||
- **缓存**:Redis
|
- **缓存**:Redis
|
||||||
- **PHP版本**:7.1+ (兼容 PHP 8.0)
|
- **PHP版本**:7.1+ (兼容 PHP 8.0)
|
||||||
- **依赖管理**:Composer
|
- **依赖管理**:Composer
|
||||||
|
- **文件存储**:腾讯云COS
|
||||||
|
|
||||||
## 🚀 快速开始
|
## 🚀 快速开始
|
||||||
|
|
||||||
### 环境要求
|
### 环境要求
|
||||||
|
**前端环境:**
|
||||||
|
- HBuilderX 3.0+
|
||||||
|
- Node.js 12+
|
||||||
|
- 微信开发者工具(小程序开发)
|
||||||
|
|
||||||
|
**后端环境:**
|
||||||
- PHP 7.1+
|
- PHP 7.1+
|
||||||
- MySQL 5.7+
|
- MySQL 5.7+
|
||||||
- Redis 3.0+
|
- Redis 3.0+
|
||||||
- Composer
|
- Composer
|
||||||
|
|
||||||
### 安装步骤
|
### 安装步骤
|
||||||
|
|
||||||
|
#### 后端安装
|
||||||
1. **克隆项目**
|
1. **克隆项目**
|
||||||
```bash
|
```bash
|
||||||
git clone [项目地址]
|
git clone [项目地址]
|
||||||
cd lottery-system
|
cd lottery-system/server/php
|
||||||
```
|
```
|
||||||
|
|
||||||
2. **安装依赖**
|
2. **安装依赖**
|
||||||
|
|
@ -106,17 +138,35 @@
|
||||||
php think run
|
php think run
|
||||||
```
|
```
|
||||||
|
|
||||||
|
#### 前端安装
|
||||||
|
1. **打开项目**
|
||||||
|
- 使用HBuilderX打开 `honey_box` 目录
|
||||||
|
|
||||||
|
2. **配置环境**
|
||||||
|
- 修改 `common/env.js` 中的API地址
|
||||||
|
- 配置小程序AppID(manifest.json)
|
||||||
|
|
||||||
|
3. **运行项目**
|
||||||
|
- 选择运行到微信小程序开发者工具
|
||||||
|
- 或运行到浏览器(H5版本)
|
||||||
|
|
||||||
### 配置说明
|
### 配置说明
|
||||||
主要配置文件位于 `config/` 目录下:
|
**后端配置文件位于 `server/php/config/` 目录下:**
|
||||||
- `database.php` - 数据库配置
|
- `database.php` - 数据库配置
|
||||||
- `app.php` - 应用配置
|
- `app.php` - 应用配置
|
||||||
- `cache.php` - 缓存配置
|
- `cache.php` - 缓存配置
|
||||||
- `route.php` - 路由配置
|
- `route.php` - 路由配置
|
||||||
|
|
||||||
|
**前端配置文件位于 `honey_box/common/` 目录下:**
|
||||||
|
- `env.js` - 环境配置(API地址、图片地址等)
|
||||||
|
- `config.js` - 全局配置管理
|
||||||
|
- `request.js` - 网络请求配置
|
||||||
|
|
||||||
## 📋 业务模块
|
## 📋 业务模块
|
||||||
|
|
||||||
### 用户系统
|
### 用户系统
|
||||||
- 手机号注册登录
|
- 手机号注册登录
|
||||||
|
- 微信授权登录
|
||||||
- 用户信息管理
|
- 用户信息管理
|
||||||
- 等级体系
|
- 等级体系
|
||||||
- 推荐机制
|
- 推荐机制
|
||||||
|
|
@ -153,6 +203,23 @@
|
||||||
## 🔧 开发指南
|
## 🔧 开发指南
|
||||||
|
|
||||||
### 代码结构
|
### 代码结构
|
||||||
|
**前端结构(honey_box/):**
|
||||||
|
```
|
||||||
|
honey_box/
|
||||||
|
├── pages/ # 页面文件
|
||||||
|
│ ├── shouye/ # 首页模块
|
||||||
|
│ ├── user/ # 用户中心
|
||||||
|
│ ├── mall/ # 商城模块
|
||||||
|
│ ├── infinite/ # 福利模块
|
||||||
|
│ └── hegui/ # 盒柜模块
|
||||||
|
├── components/ # 组件库
|
||||||
|
├── common/ # 公共模块
|
||||||
|
├── static/ # 静态资源
|
||||||
|
├── uni_modules/ # uni-app插件
|
||||||
|
└── package/ # 分包模块
|
||||||
|
```
|
||||||
|
|
||||||
|
**后端结构(server/php/):**
|
||||||
```
|
```
|
||||||
server/php/
|
server/php/
|
||||||
├── app/ # 应用目录
|
├── app/ # 应用目录
|
||||||
|
|
@ -169,19 +236,20 @@ server/php/
|
||||||
```
|
```
|
||||||
|
|
||||||
### 开发规范
|
### 开发规范
|
||||||
|
**前端开发规范:**
|
||||||
|
- 遵循Vue.js开发规范
|
||||||
|
- 使用UniApp官方组件和API
|
||||||
|
- 组件命名采用kebab-case
|
||||||
|
- 页面路由统一管理
|
||||||
|
- 网络请求统一封装
|
||||||
|
|
||||||
|
**后端开发规范:**
|
||||||
- 遵循 PSR-4 自动加载规范
|
- 遵循 PSR-4 自动加载规范
|
||||||
- 使用 ThinkPHP 6.0 开发规范
|
- 使用 ThinkPHP 6.0 开发规范
|
||||||
- 数据库操作使用 ORM
|
- 数据库操作使用 ORM
|
||||||
- 接口返回统一 JSON 格式
|
- 接口返回统一 JSON 格式
|
||||||
- 完善的异常处理机制
|
- 完善的异常处理机制
|
||||||
|
|
||||||
### 扩展开发
|
|
||||||
系统采用模块化设计,支持功能扩展:
|
|
||||||
- 新增抽奖类型
|
|
||||||
- 自定义支付方式
|
|
||||||
- 扩展奖品类型
|
|
||||||
- 增加数据分析维度
|
|
||||||
|
|
||||||
## 🛡️ 安全特性
|
## 🛡️ 安全特性
|
||||||
|
|
||||||
### 数据安全
|
### 数据安全
|
||||||
|
|
@ -197,7 +265,7 @@ server/php/
|
||||||
- 操作审计
|
- 操作审计
|
||||||
|
|
||||||
### 系统安全
|
### 系统安全
|
||||||
- JWT认证
|
- Token认证
|
||||||
- 权限控制
|
- 权限控制
|
||||||
- 访问日志
|
- 访问日志
|
||||||
- 安全配置
|
- 安全配置
|
||||||
|
|
@ -262,22 +330,9 @@ server/php/
|
||||||
- 包含复现步骤
|
- 包含复现步骤
|
||||||
- 提供环境信息
|
- 提供环境信息
|
||||||
|
|
||||||
## 📞 技术支持
|
|
||||||
|
|
||||||
### 联系方式
|
|
||||||
- 技术交流群:[群号]
|
|
||||||
- 邮箱:[邮箱地址]
|
|
||||||
- 官网:[官网地址]
|
|
||||||
|
|
||||||
### 常见问题
|
|
||||||
- 查看 FAQ 文档
|
|
||||||
- 搜索历史 Issue
|
|
||||||
- 参考技术文档
|
|
||||||
- 联系技术支持
|
|
||||||
|
|
||||||
## 📄 许可证
|
## 📄 许可证
|
||||||
|
|
||||||
本项目采用 [Apache 2.0](../LICENSE) 许可证。
|
本项目采用 [Apache 2.0](./LICENSE) 许可证。
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
1408
docs/API接口文档.md
1408
docs/API接口文档.md
File diff suppressed because it is too large
Load Diff
563
docs/系统架构图.md
563
docs/系统架构图.md
|
|
@ -5,54 +5,59 @@
|
||||||
```mermaid
|
```mermaid
|
||||||
graph TB
|
graph TB
|
||||||
subgraph "客户端层"
|
subgraph "客户端层"
|
||||||
A1[微信小程序]
|
A1[微信小程序<br/>honey_box]
|
||||||
A2[H5页面]
|
A2[H5页面<br/>UniApp多端]
|
||||||
A3[管理后台]
|
A3[管理后台<br/>Web界面]
|
||||||
|
A4[APP应用<br/>Android/iOS]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "网关层"
|
subgraph "网关层"
|
||||||
B1[Nginx反向代理]
|
B1[Nginx反向代理]
|
||||||
B2[负载均衡]
|
B2[负载均衡]
|
||||||
|
B3[SSL证书]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "应用层"
|
subgraph "应用层 - ThinkPHP 6.0"
|
||||||
C1[API接口模块]
|
C1[API接口模块<br/>app/api]
|
||||||
C2[管理后台模块]
|
C2[管理后台模块<br/>app/admin]
|
||||||
C3[定时任务模块]
|
C3[前台页面模块<br/>app/index]
|
||||||
|
C4[定时任务模块<br/>app/command]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "业务服务层"
|
subgraph "业务服务层"
|
||||||
D1[用户服务]
|
D1[用户服务<br/>登录注册/用户管理]
|
||||||
D2[商品服务]
|
D2[商品服务<br/>盒子管理/奖品配置]
|
||||||
D3[订单服务]
|
D3[订单服务<br/>订单处理/支付管理]
|
||||||
D4[支付服务]
|
D4[抽奖服务<br/>9种抽奖算法]
|
||||||
D5[抽奖服务]
|
D5[物流服务<br/>发货/物流跟踪]
|
||||||
D6[物流服务]
|
D6[集市服务<br/>二手交易]
|
||||||
D7[集市服务]
|
D7[财务服务<br/>资金流水/优惠券]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "数据层"
|
subgraph "数据层"
|
||||||
E1[MySQL主库]
|
E1[MySQL主库<br/>业务数据]
|
||||||
E2[MySQL从库]
|
E2[MySQL从库<br/>读写分离]
|
||||||
E3[Redis缓存]
|
E3[Redis缓存<br/>会话/配置缓存]
|
||||||
E4[文件存储]
|
E4[腾讯云COS<br/>图片/文件存储]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "外部服务"
|
subgraph "外部服务"
|
||||||
F1[微信支付]
|
F1[微信支付<br/>小程序支付]
|
||||||
F2[支付宝]
|
F2[支付宝<br/>APP支付]
|
||||||
F3[短信服务]
|
F3[短信服务<br/>验证码发送]
|
||||||
F4[物流接口]
|
F4[物流接口<br/>快递查询]
|
||||||
F5[腾讯云COS]
|
F5[微信开放平台<br/>授权登录]
|
||||||
end
|
end
|
||||||
|
|
||||||
A1 --> B1
|
A1 --> B1
|
||||||
A2 --> B1
|
A2 --> B1
|
||||||
A3 --> B1
|
A3 --> B1
|
||||||
|
A4 --> B1
|
||||||
|
|
||||||
B1 --> B2
|
B1 --> B2
|
||||||
B2 --> C1
|
B2 --> C1
|
||||||
B2 --> C2
|
B2 --> C2
|
||||||
|
B2 --> C3
|
||||||
|
|
||||||
C1 --> D1
|
C1 --> D1
|
||||||
C1 --> D2
|
C1 --> D2
|
||||||
|
|
@ -65,10 +70,11 @@ graph TB
|
||||||
C2 --> D1
|
C2 --> D1
|
||||||
C2 --> D2
|
C2 --> D2
|
||||||
C2 --> D3
|
C2 --> D3
|
||||||
|
C2 --> D7
|
||||||
|
|
||||||
C3 --> D1
|
C4 --> D1
|
||||||
C3 --> D2
|
C4 --> D2
|
||||||
C3 --> D3
|
C4 --> D3
|
||||||
|
|
||||||
D1 --> E1
|
D1 --> E1
|
||||||
D2 --> E1
|
D2 --> E1
|
||||||
|
|
@ -86,76 +92,202 @@ graph TB
|
||||||
D2 --> E3
|
D2 --> E3
|
||||||
D3 --> E3
|
D3 --> E3
|
||||||
D4 --> E3
|
D4 --> E3
|
||||||
D5 --> E3
|
|
||||||
|
|
||||||
D2 --> E4
|
D2 --> E4
|
||||||
D6 --> E4
|
D5 --> E4
|
||||||
|
|
||||||
D4 --> F1
|
D3 --> F1
|
||||||
D4 --> F2
|
D3 --> F2
|
||||||
D1 --> F3
|
D1 --> F3
|
||||||
D6 --> F4
|
D5 --> F4
|
||||||
D2 --> F5
|
D1 --> F5
|
||||||
```
|
```
|
||||||
|
|
||||||
## 2. 应用模块架构
|
## 2. 前后端架构设计
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
graph TD
|
graph TD
|
||||||
subgraph "ThinkPHP 6.0 框架"
|
subgraph "前端架构 - UniApp框架"
|
||||||
A[应用入口 public/index.php]
|
A[honey_box小程序项目]
|
||||||
|
|
||||||
subgraph "多应用模式"
|
subgraph "页面模块"
|
||||||
B1[admin - 管理后台]
|
B1[pages/shouye - 首页模块]
|
||||||
B2[api - 接口服务]
|
B2[pages/user - 用户中心]
|
||||||
B3[index - 前台页面]
|
B3[pages/mall - 商城模块]
|
||||||
|
B4[pages/infinite - 福利模块]
|
||||||
|
B5[pages/hegui - 盒柜模块]
|
||||||
|
B6[pages/other - 其他页面]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "组件系统"
|
||||||
|
C1[components/banner - 轮播组件]
|
||||||
|
C2[components/detail-* - 详情组件]
|
||||||
|
C3[components/pay-dialog - 支付组件]
|
||||||
|
C4[components/lucky-canvas - 抽奖组件]
|
||||||
|
C5[components/prize-wheel - 转盘组件]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "公共模块"
|
subgraph "公共模块"
|
||||||
C1[common/model - 数据模型]
|
D1[common/request.js - 请求管理]
|
||||||
C2[common/service - 业务服务]
|
D2[common/config.js - 配置管理]
|
||||||
C3[common/helper - 工具类]
|
D3[common/router.js - 路由管理]
|
||||||
C4[common/server - 服务类]
|
D4[common/env.js - 环境配置]
|
||||||
|
D5[common/platform - 平台适配]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "中间件层"
|
subgraph "分包模块"
|
||||||
D1[认证中间件]
|
E1[package/index - 首页分包]
|
||||||
D2[权限中间件]
|
E2[package/mine - 个人中心分包]
|
||||||
D3[日志中间件]
|
end
|
||||||
D4[跨域中间件]
|
end
|
||||||
|
|
||||||
|
subgraph "后端架构 - ThinkPHP 6.0"
|
||||||
|
F[server/php项目]
|
||||||
|
|
||||||
|
subgraph "应用模块"
|
||||||
|
G1[app/admin - 管理后台]
|
||||||
|
G2[app/api - API接口]
|
||||||
|
G3[app/index - 前台页面]
|
||||||
|
G4[app/command - 定时任务]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "公共模块"
|
||||||
|
H1[app/common/model - 数据模型]
|
||||||
|
H2[app/common/service - 业务服务]
|
||||||
|
H3[app/common/helper - 工具类]
|
||||||
|
H4[app/common/server - 服务类]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "配置管理"
|
subgraph "配置管理"
|
||||||
E1[数据库配置]
|
I1[config/database.php - 数据库配置]
|
||||||
E2[缓存配置]
|
I2[config/app.php - 应用配置]
|
||||||
E3[路由配置]
|
I3[config/cache.php - 缓存配置]
|
||||||
E4[应用配置]
|
I4[config/route.php - 路由配置]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
A --> B1
|
A --> B1
|
||||||
A --> B2
|
A --> B2
|
||||||
A --> B3
|
A --> B3
|
||||||
|
A --> B4
|
||||||
|
A --> B5
|
||||||
|
A --> B6
|
||||||
|
|
||||||
B1 --> C1
|
B1 --> C1
|
||||||
B1 --> C2
|
|
||||||
B2 --> C1
|
|
||||||
B2 --> C2
|
B2 --> C2
|
||||||
B3 --> C1
|
B3 --> C3
|
||||||
B3 --> C2
|
B4 --> C4
|
||||||
|
B5 --> C5
|
||||||
|
|
||||||
B1 --> D1
|
C1 --> D1
|
||||||
B1 --> D2
|
C2 --> D2
|
||||||
B2 --> D1
|
C3 --> D3
|
||||||
B2 --> D3
|
C4 --> D4
|
||||||
|
C5 --> D5
|
||||||
|
|
||||||
C1 --> E1
|
D1 --> G2
|
||||||
C2 --> E2
|
D2 --> G2
|
||||||
B1 --> E3
|
|
||||||
B2 --> E3
|
F --> G1
|
||||||
|
F --> G2
|
||||||
|
F --> G3
|
||||||
|
F --> G4
|
||||||
|
|
||||||
|
G1 --> H1
|
||||||
|
G2 --> H1
|
||||||
|
G3 --> H1
|
||||||
|
G4 --> H1
|
||||||
|
|
||||||
|
G1 --> H2
|
||||||
|
G2 --> H2
|
||||||
|
|
||||||
|
H1 --> I1
|
||||||
|
H2 --> I2
|
||||||
```
|
```
|
||||||
|
|
||||||
## 3. 数据库架构设计
|
## 3. 小程序技术架构
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
graph TD
|
||||||
|
subgraph "UniApp跨平台架构"
|
||||||
|
A[UniApp框架]
|
||||||
|
|
||||||
|
subgraph "编译目标"
|
||||||
|
B1[微信小程序<br/>wx683d8a8a499d7ec6]
|
||||||
|
B2[H5网页版]
|
||||||
|
B3[Android APP]
|
||||||
|
B4[iOS APP]
|
||||||
|
B5[支付宝小程序]
|
||||||
|
B6[字节跳动小程序]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "核心依赖"
|
||||||
|
C1[@lucky-canvas/uni<br/>抽奖转盘组件]
|
||||||
|
C2[js-md5<br/>MD5加密]
|
||||||
|
C3[uqrcodejs<br/>二维码生成]
|
||||||
|
C4[eruda<br/>调试工具]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "页面路由"
|
||||||
|
D1[TabBar导航<br/>5个主要页面]
|
||||||
|
D2[普通页面<br/>50+功能页面]
|
||||||
|
D3[分包页面<br/>按需加载]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "状态管理"
|
||||||
|
E1[全局配置<br/>ConfigManager]
|
||||||
|
E2[用户状态<br/>Token/UserInfo]
|
||||||
|
E3[缓存管理<br/>Storage]
|
||||||
|
E4[环境配置<br/>EnvConfig]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "网络通信"
|
||||||
|
F1[请求封装<br/>RequestManager]
|
||||||
|
F2[签名验证<br/>MD5+时间戳]
|
||||||
|
F3[错误处理<br/>统一异常处理]
|
||||||
|
F4[缓存策略<br/>5分钟缓存]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "平台适配"
|
||||||
|
G1[微信平台<br/>支付/登录/分享]
|
||||||
|
G2[H5平台<br/>网页支付]
|
||||||
|
G3[APP平台<br/>原生功能]
|
||||||
|
G4[其他平台<br/>功能适配]
|
||||||
|
end
|
||||||
|
|
||||||
|
A --> B1
|
||||||
|
A --> B2
|
||||||
|
A --> B3
|
||||||
|
A --> B4
|
||||||
|
A --> B5
|
||||||
|
A --> B6
|
||||||
|
|
||||||
|
A --> C1
|
||||||
|
A --> C2
|
||||||
|
A --> C3
|
||||||
|
A --> C4
|
||||||
|
|
||||||
|
B1 --> D1
|
||||||
|
B2 --> D2
|
||||||
|
B3 --> D3
|
||||||
|
|
||||||
|
D1 --> E1
|
||||||
|
D2 --> E2
|
||||||
|
D3 --> E3
|
||||||
|
|
||||||
|
E1 --> F1
|
||||||
|
E2 --> F2
|
||||||
|
E3 --> F3
|
||||||
|
E4 --> F4
|
||||||
|
|
||||||
|
F1 --> G1
|
||||||
|
F2 --> G2
|
||||||
|
F3 --> G3
|
||||||
|
F4 --> G4
|
||||||
|
```
|
||||||
|
|
||||||
|
## 4. 数据库架构设计
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
erDiagram
|
erDiagram
|
||||||
|
|
@ -233,7 +365,7 @@ erDiagram
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
## 4. 抽奖算法架构
|
## 5. 抽奖算法架构
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
graph TD
|
graph TD
|
||||||
|
|
@ -283,24 +415,30 @@ graph TD
|
||||||
J --> K[返回结果]
|
J --> K[返回结果]
|
||||||
```
|
```
|
||||||
|
|
||||||
## 5. 支付系统架构
|
## 6. 支付系统架构
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
graph TD
|
graph TD
|
||||||
A[支付请求] --> B[支付路由]
|
A[支付请求] --> B[支付路由]
|
||||||
|
|
||||||
B --> C{支付方式}
|
B --> C{支付方式}
|
||||||
C --> D1[微信支付]
|
C --> D1[微信支付<br/>小程序支付]
|
||||||
C --> D2[支付宝支付]
|
C --> D2[支付宝支付<br/>APP支付]
|
||||||
C --> D3[余额支付]
|
C --> D3[余额支付<br/>钻石扣除]
|
||||||
C --> D4[虚拟货币支付]
|
C --> D4[虚拟货币支付<br/>UU币/哈尼券]
|
||||||
|
|
||||||
subgraph "支付处理"
|
subgraph "支付处理流程"
|
||||||
E1[订单验证]
|
E1[订单验证<br/>检查订单状态]
|
||||||
E2[金额计算]
|
E2[金额计算<br/>优惠券抵扣]
|
||||||
E3[优惠券处理]
|
E3[支付执行<br/>调用支付接口]
|
||||||
E4[支付执行]
|
E4[回调处理<br/>异步通知]
|
||||||
E5[回调处理]
|
E5[状态更新<br/>订单完成]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "小程序支付集成"
|
||||||
|
F1[wx.requestPayment<br/>调起支付]
|
||||||
|
F2[支付参数生成<br/>签名验证]
|
||||||
|
F3[支付结果处理<br/>成功/失败]
|
||||||
end
|
end
|
||||||
|
|
||||||
D1 --> E1
|
D1 --> E1
|
||||||
|
|
@ -311,48 +449,38 @@ graph TD
|
||||||
E1 --> E2
|
E1 --> E2
|
||||||
E2 --> E3
|
E2 --> E3
|
||||||
E3 --> E4
|
E3 --> E4
|
||||||
|
E4 --> E5
|
||||||
|
|
||||||
E4 --> F{支付结果}
|
D1 --> F1
|
||||||
F -->|成功| G[触发抽奖]
|
F1 --> F2
|
||||||
F -->|失败| H[订单取消]
|
F2 --> F3
|
||||||
|
|
||||||
subgraph "外部支付"
|
E5 --> G[触发抽奖算法]
|
||||||
I1[微信支付API]
|
G --> H[生成中奖结果]
|
||||||
I2[支付宝API]
|
|
||||||
end
|
|
||||||
|
|
||||||
D1 --> I1
|
|
||||||
D2 --> I2
|
|
||||||
|
|
||||||
I1 --> E5
|
|
||||||
I2 --> E5
|
|
||||||
|
|
||||||
E5 --> J[更新订单状态]
|
|
||||||
J --> G
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## 6. 缓存架构设计
|
## 7. 缓存架构设计
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
graph TD
|
graph TD
|
||||||
subgraph "应用层缓存"
|
subgraph "前端缓存策略"
|
||||||
A1[用户信息缓存]
|
A1[小程序缓存<br/>uni.setStorageSync]
|
||||||
A2[商品信息缓存]
|
A2[配置缓存<br/>ConfigManager]
|
||||||
A3[配置信息缓存]
|
A3[用户信息缓存<br/>Token/UserInfo]
|
||||||
A4[热点数据缓存]
|
A4[请求缓存<br/>5分钟有效期]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "Redis集群"
|
subgraph "后端Redis集群"
|
||||||
B1[Redis Master]
|
B1[Redis Master<br/>主节点写入]
|
||||||
B2[Redis Slave 1]
|
B2[Redis Slave 1<br/>从节点读取]
|
||||||
B3[Redis Slave 2]
|
B3[Redis Slave 2<br/>从节点读取]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "缓存策略"
|
subgraph "缓存策略"
|
||||||
C1[读写分离]
|
C1[读写分离<br/>主写从读]
|
||||||
C2[主从同步]
|
C2[主从同步<br/>实时同步]
|
||||||
C3[故障转移]
|
C3[故障转移<br/>自动切换]
|
||||||
C4[数据持久化]
|
C4[数据持久化<br/>RDB+AOF]
|
||||||
end
|
end
|
||||||
|
|
||||||
A1 --> B1
|
A1 --> B1
|
||||||
|
|
@ -372,10 +500,10 @@ graph TD
|
||||||
C3 --> C4
|
C3 --> C4
|
||||||
|
|
||||||
subgraph "缓存更新策略"
|
subgraph "缓存更新策略"
|
||||||
D1[定时更新]
|
D1[定时更新<br/>配置刷新]
|
||||||
D2[事件触发更新]
|
D2[事件触发更新<br/>数据变更]
|
||||||
D3[LRU淘汰]
|
D3[LRU淘汰<br/>内存管理]
|
||||||
D4[TTL过期]
|
D4[TTL过期<br/>自动清理]
|
||||||
end
|
end
|
||||||
|
|
||||||
C4 --> D1
|
C4 --> D1
|
||||||
|
|
@ -384,29 +512,29 @@ graph TD
|
||||||
C4 --> D4
|
C4 --> D4
|
||||||
```
|
```
|
||||||
|
|
||||||
## 7. 消息队列架构
|
## 8. 消息队列架构
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
graph TD
|
graph TD
|
||||||
subgraph "消息生产者"
|
subgraph "消息生产者"
|
||||||
A1[订单服务]
|
A1[订单服务<br/>下单事件]
|
||||||
A2[支付服务]
|
A2[支付服务<br/>支付回调]
|
||||||
A3[抽奖服务]
|
A3[抽奖服务<br/>中奖结果]
|
||||||
A4[物流服务]
|
A4[物流服务<br/>发货状态]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "消息队列"
|
subgraph "消息队列"
|
||||||
B1[支付成功队列]
|
B1[支付成功队列<br/>触发抽奖]
|
||||||
B2[抽奖结果队列]
|
B2[抽奖结果队列<br/>推送通知]
|
||||||
B3[发货通知队列]
|
B3[发货通知队列<br/>物流更新]
|
||||||
B4[数据统计队列]
|
B4[数据统计队列<br/>业务分析]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "消息消费者"
|
subgraph "消息消费者"
|
||||||
C1[抽奖处理器]
|
C1[抽奖处理器<br/>执行抽奖算法]
|
||||||
C2[通知处理器]
|
C2[通知处理器<br/>小程序推送]
|
||||||
C3[统计处理器]
|
C3[统计处理器<br/>数据汇总]
|
||||||
C4[日志处理器]
|
C4[日志处理器<br/>操作记录]
|
||||||
end
|
end
|
||||||
|
|
||||||
A1 --> B1
|
A1 --> B1
|
||||||
|
|
@ -421,43 +549,43 @@ graph TD
|
||||||
B3 --> C2
|
B3 --> C2
|
||||||
B4 --> C3
|
B4 --> C3
|
||||||
|
|
||||||
C1 --> D1[执行抽奖]
|
C1 --> D1[执行抽奖<br/>生成中奖记录]
|
||||||
C2 --> D2[发送通知]
|
C2 --> D2[发送通知<br/>微信模板消息]
|
||||||
C3 --> D3[更新统计]
|
C3 --> D3[更新统计<br/>实时数据]
|
||||||
C4 --> D4[记录日志]
|
C4 --> D4[记录日志<br/>审计追踪]
|
||||||
```
|
```
|
||||||
|
|
||||||
## 8. 安全架构设计
|
## 9. 安全架构设计
|
||||||
|
|
||||||
```mermaid
|
```mermaid
|
||||||
graph TD
|
graph TD
|
||||||
subgraph "网络安全"
|
subgraph "网络安全"
|
||||||
A1[HTTPS加密]
|
A1[HTTPS加密<br/>SSL证书]
|
||||||
A2[防火墙]
|
A2[防火墙<br/>端口控制]
|
||||||
A3[DDoS防护]
|
A3[DDoS防护<br/>流量清洗]
|
||||||
A4[IP白名单]
|
A4[IP白名单<br/>访问控制]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "应用安全"
|
subgraph "应用安全"
|
||||||
B1[JWT认证]
|
B1[JWT认证<br/>Token验证]
|
||||||
B2[权限控制]
|
B2[权限控制<br/>RBAC模型]
|
||||||
B3[参数验证]
|
B3[参数验证<br/>输入过滤]
|
||||||
B4[SQL注入防护]
|
B4[SQL注入防护<br/>ORM框架]
|
||||||
B5[XSS防护]
|
B5[XSS防护<br/>输出转义]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "数据安全"
|
subgraph "数据安全"
|
||||||
C1[数据加密]
|
C1[数据加密<br/>敏感字段加密]
|
||||||
C2[敏感信息脱敏]
|
C2[信息脱敏<br/>手机号脱敏]
|
||||||
C3[数据备份]
|
C3[数据备份<br/>定时备份]
|
||||||
C4[访问日志]
|
C4[访问日志<br/>操作审计]
|
||||||
end
|
end
|
||||||
|
|
||||||
subgraph "业务安全"
|
subgraph "业务安全"
|
||||||
D1[防刷机制]
|
D1[防刷机制<br/>频率限制]
|
||||||
D2[风控系统]
|
D2[风控系统<br/>异常检测]
|
||||||
D3[异常监控]
|
D3[签名验证<br/>MD5+时间戳]
|
||||||
D4[操作审计]
|
D4[白名单机制<br/>API访问控制]
|
||||||
end
|
end
|
||||||
|
|
||||||
A1 --> B1
|
A1 --> B1
|
||||||
|
|
@ -477,58 +605,6 @@ graph TD
|
||||||
C4 --> D4
|
C4 --> D4
|
||||||
```
|
```
|
||||||
|
|
||||||
## 9. 监控运维架构
|
|
||||||
|
|
||||||
```mermaid
|
|
||||||
graph TD
|
|
||||||
subgraph "应用监控"
|
|
||||||
A1[性能监控]
|
|
||||||
A2[错误监控]
|
|
||||||
A3[业务监控]
|
|
||||||
A4[用户行为监控]
|
|
||||||
end
|
|
||||||
|
|
||||||
subgraph "系统监控"
|
|
||||||
B1[服务器监控]
|
|
||||||
B2[数据库监控]
|
|
||||||
B3[缓存监控]
|
|
||||||
B4[网络监控]
|
|
||||||
end
|
|
||||||
|
|
||||||
subgraph "日志管理"
|
|
||||||
C1[应用日志]
|
|
||||||
C2[访问日志]
|
|
||||||
C3[错误日志]
|
|
||||||
C4[审计日志]
|
|
||||||
end
|
|
||||||
|
|
||||||
subgraph "告警系统"
|
|
||||||
D1[实时告警]
|
|
||||||
D2[邮件通知]
|
|
||||||
D3[短信通知]
|
|
||||||
D4[钉钉通知]
|
|
||||||
end
|
|
||||||
|
|
||||||
A1 --> D1
|
|
||||||
A2 --> D1
|
|
||||||
A3 --> D1
|
|
||||||
A4 --> D1
|
|
||||||
|
|
||||||
B1 --> D1
|
|
||||||
B2 --> D1
|
|
||||||
B3 --> D1
|
|
||||||
B4 --> D1
|
|
||||||
|
|
||||||
C1 --> D2
|
|
||||||
C2 --> D2
|
|
||||||
C3 --> D2
|
|
||||||
C4 --> D2
|
|
||||||
|
|
||||||
D1 --> D3
|
|
||||||
D2 --> D3
|
|
||||||
D3 --> D4
|
|
||||||
```
|
|
||||||
|
|
||||||
## 架构特点说明
|
## 架构特点说明
|
||||||
|
|
||||||
### 1. 高可用性
|
### 1. 高可用性
|
||||||
|
|
@ -556,4 +632,93 @@ graph TD
|
||||||
- 标准化的开发规范
|
- 标准化的开发规范
|
||||||
- 完善的日志和监控体系
|
- 完善的日志和监控体系
|
||||||
|
|
||||||
这个架构设计充分考虑了抽奖盲盒系统的业务特点,在保证系统稳定性和性能的同时,也为未来的功能扩展预留了空间。
|
这个架构设计充分考虑了抽奖盲盒系统的业务特点,在保证系统稳定性和性能的同时,也为未来的功能扩展预留了空间。
|
||||||
|
## 10. 监控运维架构
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
graph TD
|
||||||
|
subgraph "应用监控"
|
||||||
|
A1[性能监控<br/>响应时间/吞吐量]
|
||||||
|
A2[错误监控<br/>异常捕获/错误率]
|
||||||
|
A3[业务监控<br/>抽奖成功率/支付成功率]
|
||||||
|
A4[用户行为监控<br/>页面访问/操作路径]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "系统监控"
|
||||||
|
B1[服务器监控<br/>CPU/内存/磁盘]
|
||||||
|
B2[数据库监控<br/>连接数/慢查询]
|
||||||
|
B3[缓存监控<br/>Redis性能/命中率]
|
||||||
|
B4[网络监控<br/>带宽/延迟]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "日志管理"
|
||||||
|
C1[应用日志<br/>业务操作日志]
|
||||||
|
C2[访问日志<br/>API调用记录]
|
||||||
|
C3[错误日志<br/>异常堆栈信息]
|
||||||
|
C4[审计日志<br/>管理员操作]
|
||||||
|
end
|
||||||
|
|
||||||
|
subgraph "告警系统"
|
||||||
|
D1[实时告警<br/>阈值监控]
|
||||||
|
D2[邮件通知<br/>异常报告]
|
||||||
|
D3[短信通知<br/>紧急告警]
|
||||||
|
D4[钉钉通知<br/>团队协作]
|
||||||
|
end
|
||||||
|
|
||||||
|
A1 --> D1
|
||||||
|
A2 --> D1
|
||||||
|
A3 --> D1
|
||||||
|
A4 --> D1
|
||||||
|
|
||||||
|
B1 --> D1
|
||||||
|
B2 --> D1
|
||||||
|
B3 --> D1
|
||||||
|
B4 --> D1
|
||||||
|
|
||||||
|
C1 --> D2
|
||||||
|
C2 --> D2
|
||||||
|
C3 --> D2
|
||||||
|
C4 --> D2
|
||||||
|
|
||||||
|
D1 --> D3
|
||||||
|
D2 --> D3
|
||||||
|
D3 --> D4
|
||||||
|
```
|
||||||
|
|
||||||
|
## 架构特点说明
|
||||||
|
|
||||||
|
### 1. 前后端分离架构
|
||||||
|
- **前端**:基于UniApp框架的跨平台小程序,支持微信小程序、H5、APP等多端部署
|
||||||
|
- **后端**:基于ThinkPHP 6.0的RESTful API服务,提供统一的数据接口
|
||||||
|
|
||||||
|
### 2. 小程序技术栈
|
||||||
|
- **框架**:UniApp + Vue.js 2.x
|
||||||
|
- **构建工具**:HBuilderX
|
||||||
|
- **状态管理**:全局配置管理 + 本地存储
|
||||||
|
- **网络请求**:封装的RequestManager,支持签名验证和缓存
|
||||||
|
- **UI组件**:自定义组件 + uni-ui组件库
|
||||||
|
|
||||||
|
### 3. 后端技术架构
|
||||||
|
- **框架**:ThinkPHP 6.0
|
||||||
|
- **数据库**:MySQL 5.7+ 主从架构
|
||||||
|
- **缓存**:Redis集群
|
||||||
|
- **文件存储**:腾讯云COS
|
||||||
|
- **队列**:基于Redis的消息队列
|
||||||
|
|
||||||
|
### 4. 核心业务特性
|
||||||
|
- **多端适配**:一套代码支持小程序、H5、APP多端运行
|
||||||
|
- **抽奖算法**:9种不同类型的抽奖模式,优化的概率算法
|
||||||
|
- **支付集成**:微信支付、支付宝、虚拟货币等多种支付方式
|
||||||
|
- **实时通信**:WebSocket推送中奖结果和系统通知
|
||||||
|
|
||||||
|
### 5. 安全防护
|
||||||
|
- **前端安全**:请求签名、参数加密、防重放攻击
|
||||||
|
- **后端安全**:JWT认证、权限控制、SQL注入防护
|
||||||
|
- **业务安全**:防刷机制、风控系统、操作审计
|
||||||
|
|
||||||
|
### 6. 性能优化
|
||||||
|
- **前端优化**:分包加载、图片懒加载、请求缓存
|
||||||
|
- **后端优化**:数据库索引、Redis缓存、CDN加速
|
||||||
|
- **算法优化**:抽奖算法内存优化,性能提升90%+
|
||||||
|
|
||||||
|
这个架构设计充分考虑了抽奖盲盒系统的业务特点和技术需求,在保证系统稳定性和性能的同时,也为未来的功能扩展和多端部署提供了良好的基础。
|
||||||
Loading…
Reference in New Issue
Block a user