·vincent

数据分析系统技术文档

魔兽世界拍卖行数据分析系统技术文档

node

1. 项目架构说明

这是一个基于 NestJS 框架开发的后端服务项目,主要用于魔兽世界拍卖行数据分析系统。

2. 项目结构

ts
1/auction_analyes
2├── src/                    # 源代码目录
3│   ├── app.module.ts      # 根模块
4│   ├── main.ts           # 应用程序入口
5│   ├── cache/           # 缓存相关模块
6│   ├── config/          # 配置文件
7│   ├── core/            # 核心业务模块
8│   ├── decorators/      # 自定义装饰器
9│   ├── guard/           # 守卫
10│   ├── intercept/       # 拦截器
11│   ├── interfaces/      # 接口定义
12│   ├── middlewares/     # 中间件
13│   ├── migrations/      # 数据库迁移
14│   ├── pipes/          # 管道
15│   ├── templates/      # 模板文件
16│   └── utils/          # 工具函数

3. 核心模块分析

3.1 数据存储

  • 数据库: 使用 MariaDB 作为主数据库
  • 缓存: 使用 Redis 作为缓存层
  • 对象存储: 同时集成了阿里云 OSS 和七牛云存储服务

3.2 核心业务模块 ()

  • 拍卖行历史 ()
  • 区域管理 ()
  • 权限管理 ()
  • 定时任务 ()

4. 技术特性

4.1 权限系统

实现了基于会员等级的细粒度权限控制:

  • 支持不同会员等级(FREE、SILVER、GOLD、DIAMOND)
  • 针对不同资源类型的访问控制
  • 支持每日/每月使用限制

4.2 缓存策略

采用多级缓存策略:

  • Redis 作为主要缓存层
  • 实现了自定义缓存管理器
  • 支持按区域和阵营的数据缓存

4.3 数据归档

实现了自动化的数据归档机制:

  • 定期将历史数据归档到 summary 表
  • 支持按月归档历史数据
  • 自动备份关键数据表

4.4 系统配置

  • 支持多环境配置(development、stage、production)
  • 使用 dotenv 进行环境变量管理
  • 集成了邮件服务、对象存储等第三方服务配置

5. 部署相关

  • 使用 Docker 进行容器化部署
  • 提供了完整的 docker-compose 配置
  • 支持服务编排和资源限制

6. 开发工具支持

  • TypeScript 作为开发语言
  • ESLint 和 Prettier 用于代码规范
  • Jest 用于单元测试
  • 使用 Swagger 进行 API 文档管理

这个项目采用了典型的 NestJS 分层架构,同时结合了缓存、权限、数据归档等特性,形成了一个完整的拍卖行数据分析系统。