# 抽奖盲盒系统架构图 ## 1. 系统整体架构 ```mermaid graph TB subgraph "客户端层" A1[微信小程序
honey_box] A2[H5页面
UniApp多端] A3[管理后台
Web界面] A4[APP应用
Android/iOS] end subgraph "网关层" B1[Nginx反向代理] B2[负载均衡] B3[SSL证书] end subgraph "应用层 - ThinkPHP 6.0" C1[API接口模块
app/api] C2[管理后台模块
app/admin] C3[前台页面模块
app/index] C4[定时任务模块
app/command] end subgraph "业务服务层" D1[用户服务
登录注册/用户管理] D2[商品服务
盒子管理/奖品配置] D3[订单服务
订单处理/支付管理] D4[抽奖服务
9种抽奖算法] D5[物流服务
发货/物流跟踪] D6[集市服务
二手交易] D7[财务服务
资金流水/优惠券] end subgraph "数据层" E1[MySQL主库
业务数据] E2[MySQL从库
读写分离] E3[Redis缓存
会话/配置缓存] E4[腾讯云COS
图片/文件存储] end subgraph "外部服务" F1[微信支付
小程序支付] F2[支付宝
APP支付] F3[短信服务
验证码发送] F4[物流接口
快递查询] F5[微信开放平台
授权登录] end A1 --> B1 A2 --> B1 A3 --> B1 A4 --> B1 B1 --> B2 B2 --> C1 B2 --> C2 B2 --> C3 C1 --> D1 C1 --> D2 C1 --> D3 C1 --> D4 C1 --> D5 C1 --> D6 C1 --> D7 C2 --> D1 C2 --> D2 C2 --> D3 C2 --> D7 C4 --> D1 C4 --> D2 C4 --> D3 D1 --> E1 D2 --> E1 D3 --> E1 D4 --> E1 D5 --> E1 D6 --> E1 D7 --> E1 D1 --> E2 D2 --> E2 D3 --> E2 D1 --> E3 D2 --> E3 D3 --> E3 D4 --> E3 D2 --> E4 D5 --> E4 D3 --> F1 D3 --> F2 D1 --> F3 D5 --> F4 D1 --> F5 ``` ## 2. 前后端架构设计 ```mermaid graph TD subgraph "前端架构 - UniApp框架" A[honey_box小程序项目] subgraph "页面模块" B1[pages/shouye - 首页模块] B2[pages/user - 用户中心] 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 subgraph "公共模块" D1[common/request.js - 请求管理] D2[common/config.js - 配置管理] D3[common/router.js - 路由管理] D4[common/env.js - 环境配置] D5[common/platform - 平台适配] end subgraph "分包模块" E1[package/index - 首页分包] E2[package/mine - 个人中心分包] end 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 subgraph "配置管理" I1[config/database.php - 数据库配置] I2[config/app.php - 应用配置] I3[config/cache.php - 缓存配置] I4[config/route.php - 路由配置] end end A --> B1 A --> B2 A --> B3 A --> B4 A --> B5 A --> B6 B1 --> C1 B2 --> C2 B3 --> C3 B4 --> C4 B5 --> C5 C1 --> D1 C2 --> D2 C3 --> D3 C4 --> D4 C5 --> D5 D1 --> G2 D2 --> G2 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. 小程序技术架构 ```mermaid graph TD subgraph "UniApp跨平台架构" A[UniApp框架] subgraph "编译目标" B1[微信小程序
wx683d8a8a499d7ec6] B2[H5网页版] B3[Android APP] B4[iOS APP] B5[支付宝小程序] B6[字节跳动小程序] end subgraph "核心依赖" C1[@lucky-canvas/uni
抽奖转盘组件] C2[js-md5
MD5加密] C3[uqrcodejs
二维码生成] C4[eruda
调试工具] end subgraph "页面路由" D1[TabBar导航
5个主要页面] D2[普通页面
50+功能页面] D3[分包页面
按需加载] end subgraph "状态管理" E1[全局配置
ConfigManager] E2[用户状态
Token/UserInfo] E3[缓存管理
Storage] E4[环境配置
EnvConfig] end end subgraph "网络通信" F1[请求封装
RequestManager] F2[签名验证
MD5+时间戳] F3[错误处理
统一异常处理] F4[缓存策略
5分钟缓存] end subgraph "平台适配" G1[微信平台
支付/登录/分享] G2[H5平台
网页支付] G3[APP平台
原生功能] G4[其他平台
功能适配] 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 erDiagram USER ||--o{ ORDER : "下单" USER ||--o{ ORDER_LIST : "中奖" USER ||--o{ COUPON_RECEIVE : "领取" USER ||--o{ PROFIT_MONEY : "资金变动" GOODS ||--o{ GOODS_LIST : "包含" GOODS ||--o{ ORDER : "被购买" GOODS_LIST ||--o{ ORDER_LIST : "中奖奖品" ORDER ||--o{ ORDER_LIST : "包含" ORDER_LIST ||--o{ ORDER_LIST_SEND : "发货" ORDER_LIST ||--o{ MARKET : "集市" CATEGORY ||--o{ GOODS : "分类" COUPON ||--o{ COUPON_RECEIVE : "优惠券" USER { int id PK string phone string nickname decimal money decimal integral int level datetime addtime } GOODS { int id PK int category_id FK string title string imgurl decimal price int stock int type int status datetime addtime } GOODS_LIST { int id PK int goods_id FK string title string imgurl int stock decimal price decimal real_pro int goods_type } ORDER { int id PK int user_id FK string order_num decimal order_total decimal price int goods_id FK int prize_num int status datetime addtime } ORDER_LIST { int id PK int order_id FK int user_id FK int goods_id FK int goodslist_id FK string goodslist_title decimal goodslist_price int status datetime addtime } ``` ## 5. 抽奖算法架构 ```mermaid graph TD A[抽奖请求] --> B{抽奖类型判断} B --> C1[一番赏算法] B --> C2[无限赏算法] B --> C3[抽卡机算法] B --> C4[其他类型算法] subgraph "抽奖算法核心" D1[加权随机算法] D2[概率区间算法] D3[库存消耗算法] E1[奖品池构建] E2[权重计算] E3[随机数生成] E4[结果匹配] end C1 --> D1 C2 --> D2 C3 --> D3 C4 --> D1 D1 --> E1 D2 --> E1 D3 --> E1 E1 --> E2 E2 --> E3 E3 --> E4 E4 --> F{奖品类型} F --> G1[普通奖品] F --> G2[宝箱奖品] F --> G3[特殊奖品] G2 --> H[递归抽奖] H --> E1 G1 --> I[更新库存] G3 --> I I --> J[生成中奖记录] J --> K[返回结果] ``` ## 6. 支付系统架构 ```mermaid graph TD A[支付请求] --> B[支付路由] B --> C{支付方式} C --> D1[微信支付
小程序支付] C --> D2[支付宝支付
APP支付] C --> D3[余额支付
钻石扣除] C --> D4[虚拟货币支付
UU币/哈尼券] subgraph "支付处理流程" E1[订单验证
检查订单状态] E2[金额计算
优惠券抵扣] E3[支付执行
调用支付接口] E4[回调处理
异步通知] E5[状态更新
订单完成] end subgraph "小程序支付集成" F1[wx.requestPayment
调起支付] F2[支付参数生成
签名验证] F3[支付结果处理
成功/失败] end D1 --> E1 D2 --> E1 D3 --> E1 D4 --> E1 E1 --> E2 E2 --> E3 E3 --> E4 E4 --> E5 D1 --> F1 F1 --> F2 F2 --> F3 E5 --> G[触发抽奖算法] G --> H[生成中奖结果] ``` ## 7. 缓存架构设计 ```mermaid graph TD subgraph "前端缓存策略" A1[小程序缓存
uni.setStorageSync] A2[配置缓存
ConfigManager] A3[用户信息缓存
Token/UserInfo] A4[请求缓存
5分钟有效期] end subgraph "后端Redis集群" B1[Redis Master
主节点写入] B2[Redis Slave 1
从节点读取] B3[Redis Slave 2
从节点读取] end subgraph "缓存策略" C1[读写分离
主写从读] C2[主从同步
实时同步] C3[故障转移
自动切换] C4[数据持久化
RDB+AOF] end A1 --> B1 A2 --> B1 A3 --> B1 A4 --> B1 B1 --> B2 B1 --> B3 B1 --> C1 B2 --> C1 B3 --> C1 C1 --> C2 C2 --> C3 C3 --> C4 subgraph "缓存更新策略" D1[定时更新
配置刷新] D2[事件触发更新
数据变更] D3[LRU淘汰
内存管理] D4[TTL过期
自动清理] end C4 --> D1 C4 --> D2 C4 --> D3 C4 --> D4 ``` ## 8. 消息队列架构 ```mermaid graph TD subgraph "消息生产者" A1[订单服务
下单事件] A2[支付服务
支付回调] A3[抽奖服务
中奖结果] A4[物流服务
发货状态] end subgraph "消息队列" B1[支付成功队列
触发抽奖] B2[抽奖结果队列
推送通知] B3[发货通知队列
物流更新] B4[数据统计队列
业务分析] end subgraph "消息消费者" C1[抽奖处理器
执行抽奖算法] C2[通知处理器
小程序推送] C3[统计处理器
数据汇总] C4[日志处理器
操作记录] end A1 --> B1 A2 --> B1 A2 --> B4 A3 --> B2 A3 --> B4 A4 --> B3 B1 --> C1 B2 --> C2 B3 --> C2 B4 --> C3 C1 --> D1[执行抽奖
生成中奖记录] C2 --> D2[发送通知
微信模板消息] C3 --> D3[更新统计
实时数据] C4 --> D4[记录日志
审计追踪] ``` ## 9. 安全架构设计 ```mermaid graph TD subgraph "网络安全" A1[HTTPS加密
SSL证书] A2[防火墙
端口控制] A3[DDoS防护
流量清洗] A4[IP白名单
访问控制] end subgraph "应用安全" B1[JWT认证
Token验证] B2[权限控制
RBAC模型] B3[参数验证
输入过滤] B4[SQL注入防护
ORM框架] B5[XSS防护
输出转义] end subgraph "数据安全" C1[数据加密
敏感字段加密] C2[信息脱敏
手机号脱敏] C3[数据备份
定时备份] C4[访问日志
操作审计] end subgraph "业务安全" D1[防刷机制
频率限制] D2[风控系统
异常检测] D3[签名验证
MD5+时间戳] D4[白名单机制
API访问控制] end A1 --> B1 A2 --> B2 A3 --> B3 A4 --> B4 B1 --> C1 B2 --> C2 B3 --> C3 B4 --> C4 B5 --> C4 C1 --> D1 C2 --> D2 C3 --> D3 C4 --> D4 ``` ## 架构特点说明 ### 1. 高可用性 - 采用主从数据库架构,支持读写分离 - Redis集群提供缓存高可用 - 负载均衡确保服务高可用 ### 2. 高性能 - 多层缓存策略减少数据库压力 - 异步消息队列处理耗时操作 - 优化的抽奖算法提升处理效率 ### 3. 可扩展性 - 微服务化的业务模块设计 - 水平扩展支持 - 插件化的支付和物流接口 ### 4. 安全性 - 多层安全防护机制 - 完善的权限控制体系 - 全面的审计和监控 ### 5. 可维护性 - 清晰的分层架构 - 标准化的开发规范 - 完善的日志和监控体系 这个架构设计充分考虑了抽奖盲盒系统的业务特点,在保证系统稳定性和性能的同时,也为未来的功能扩展预留了空间。 ## 10. 监控运维架构 ```mermaid graph TD subgraph "应用监控" A1[性能监控
响应时间/吞吐量] A2[错误监控
异常捕获/错误率] A3[业务监控
抽奖成功率/支付成功率] A4[用户行为监控
页面访问/操作路径] end subgraph "系统监控" B1[服务器监控
CPU/内存/磁盘] B2[数据库监控
连接数/慢查询] B3[缓存监控
Redis性能/命中率] B4[网络监控
带宽/延迟] end subgraph "日志管理" C1[应用日志
业务操作日志] C2[访问日志
API调用记录] 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. 前后端分离架构 - **前端**:基于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%+ 这个架构设计充分考虑了抽奖盲盒系统的业务特点和技术需求,在保证系统稳定性和性能的同时,也为未来的功能扩展和多端部署提供了良好的基础。